Was sind die Unterschiede und mögliche Ähnlichkeiten von Verschlüssen und Curry?

8

Ich habe einige Posts über Closures und Currys gelesen, aber ich habe das Gefühl, dass ich die Antwort nicht gefunden habe. Was sind die Unterschiede und möglicherweise die Ähnlichkeiten von Verschlüssen und Curry? Danke für die Hilfe:)

    
Nope 17.12.2008, 15:29
quelle

1 Antwort

6

Currying ist in erster Linie ein mathematisches Konzept. Es ist die gerechte Beobachtung, dass für jede n -are Funktion f: S <0> ... S n → R , können Sie eine neue Funktion fprime definieren (hat gerade einen Markdown-Fehler gefunden!) mit n-1 -Parametern, wobei dieser erste Parameter durch eine Konstante ersetzt wird. Wenn Sie also eine Funktion add(a,b) haben, können Sie eine neue Funktion add1(b) als

definieren

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

... Lesen von "::=" wie "definiert ist".

Eine Schließung 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 besteht darin, dass Sie eine Closure verwenden können, um currying zu implementieren: Sie könnten Ihre add1 -Funktion oben erstellen, indem Sie eine Closure machen, in der der erste Parameter an 1 gebunden ist.

    
Charlie Martin 17.12.2008, 16:05
quelle

Tags und Links