Currying
Från Unix.se, den fria unixresursen.
Currying är ett koncept som innebär att man gör om en funktion som tar n argument till en funktion som tar ett argument och returnerar en funktion som tar n-1 argument. Vissa funktionella språk (ML, Haskell) har särskild syntax för detta, men det kan göras i alla (t.o.m. Perl och Tcl). Exempel (i Lisp):
(lambda (x) (* x 2))
Det här skapar en funktion som fördubblar sitt argument. Vi kan också abstrahera bort curryandet till en funktion:
(defun curry (f &rest a) (lambda (&rest b) (apply f `(,@a ,@b)))) (curry '* 2)