Nach meinem Verständnis sind Teilfunktionen Funktionen, die wir erhalten, wenn wir weniger Parameter an eine Funktion übergeben als erwartet. Wenn dies beispielsweise in Python direkt gültig wäre:
>>> def add(x,y):
... return x+y
...
>>> new_function = add(1)
>>> new_function(2)
3
Im obigen Snippet new_function
ist eine Teilfunktion. Laut Haskell Wiki ist die Definition der Teilfunktion jedoch
Eine Teilfunktion ist eine Funktion, die nicht für alle möglichen Argumente des angegebenen Typs definiert ist.
Meine Frage ist also: Was genau ist mit "Teilfunktion" gemeint?
partial
führt eine Teilanwendung durch , während Haskell dies automatisch tut. Der Wiki-Eintrag bezieht sich auf Teilfunktionen , ein Begriff aus der Mathematik.
add 3 5
ist keine Einzelfunktionsanwendung. Dies gilt zuerst für add
3, um eine neue Funktion zu erhalten, die dann auf 5 angewendet wird.
partial
Methode eine Vorwärtsdeklaration einer optional implementierten privaten Methode an anderer Stelle in der Projektcodebasis.
new_function = functools.partial(add, 1)