2008-12-17 11 views

Antwort

6

Curry ist in erster Linie ein mathematisches Konzept. Es ist die gerade Beobachtung, dass für jede n ary Funktion f: S × ... S n → R, Sie einen neuen Funktion fprime definieren kann (gerade einen Abschlag Fehler!) Mit n-1 Parameter, bei denen der erste Parameter durch eine Konstante ersetzt wird. Also, wenn Sie eine Funktion add(a,b) haben, können Sie eine neue Funktion add1(b) als

add1(b) ::= add(1, b)

... Lesen definieren „:: =“ als „definiert zu sein.“

Ein Verschluss ist eher ein Programmierkonzept. (Natürlich ist alles in der Programmierung auch ein mathematisches Konzept, aber die Closures wurden wegen der Programmierung interessant.) Wenn Sie eine Closure konstruieren, binden Sie eine oder mehrere Variablen; Sie erstellen einen Codeabschnitt, an den einige Variablen gebunden sind.

Die Beziehung ist, dass Sie einen Verschluss, um currying zu implementieren können: Sie Ihre add1 Funktion oben, indem sie einen Verschluss, dass der erste Parameter gebunden, in dem auf 1

+0

Was Sie beschrieben haben, ist Teilbewertung aufbauen konnte anstatt zu currying. Verwandt, aber nicht genau dasselbe. –