Selon ma compréhension, les fonctions partielles sont des fonctions que nous obtenons en passant moins de paramètres à une fonction que prévu. Par exemple, si cela était directement valide en Python:
>>> def add(x,y):
... return x+y
...
>>> new_function = add(1)
>>> new_function(2)
3
Dans l'extrait ci-dessus, new_function
est une fonction partielle. Cependant, selon le Haskell Wiki , la définition de la fonction partielle est
Une fonction partielle est une fonction qui n'est pas définie pour tous les arguments possibles du type spécifié.
alors, ma question est: qu'est-ce qu'on entend exactement par "fonction partielle"?
partial
effectue une application partielle , tandis que Haskell le fait automatiquement. L'entrée wiki fait référence aux fonctions partielles , qui est un terme issu des mathématiques.
add 3 5
n'est pas une application à fonction unique. Cela s'applique d'abord add
à 3 pour obtenir une nouvelle fonction, qui est ensuite appliquée à 5.
partial
méthode est une déclaration directe d'une méthode privée éventuellement implémentée ailleurs dans la base de code du projet.
new_function = functools.partial(add, 1)