Ich versuche Curry zu verstehen, indem ich verschiedene Blogs lese und über Flow-Antworten staple und ich glaube, ich habe was verstanden. In Haskell ist jede Funktion curried, es bedeutet, wenn Sie eine Funktion haben wie f x y = x + y
wirklich ((f x) y)
dabei ist, zunächst die Funktion des ersten Parameters nehmen ‚x‘ als Parameter und wendet sie teilweise funktionieren f welches wiederum eine Funktion für y zurückgibt. wo es nur einen einzigen Parameter braucht und die Funktion anwendet. In beiden Fällen nimmt die Funktion nur einen Parameter an, und auch der Prozess, eine Funktion auf einzelne Parameter zu reduzieren, wird als "currying" bezeichnet. Korrigiere mich, wenn mein Verständnis hier falsch ist.
Also, wenn es korrekt ist, könnten Sie mir bitte sagen, ob die Funktionen "zwei" und "drei" curried Funktionen sind?
Ist der folgende Code wirklich in Haskell currying?
three x y z = x + y + z
two = three 1
same = two 1
In diesem Fall habe ich zwei spezielle Funktionen, ‚zwei‘ und ‚gleiche‘, die so nur einen Parameter zu übernehmen reduziert werden, wird es curried?
Sie können es selbst testen, indem Sie den Befehl ': t' in GHCi verwenden (': t three' zeigt den Typ von 'three' an). – Mephy
groß, wusste das nicht. Vielen Dank. – Nair
@JoshuaHannah - vielleicht sehen Sie das hier. Ich war sicher nicht beleidigt oder für Sie, um Ihre Antwort zu löschen - Ich hoffte nur, Sie würden ein wenig nützliche Informationen für Nair hinzufügen - Entschuldigung Mann – Carsten