Encyclopedia > Currying

  Article Content

Currying

Currying is a functional programming language operation performed on functions of more than one argument, named after the logician Haskell Curry. Currying a function f of two arguments produces a function g of one argument that returns a function of one argument such that f(x, y) equals (g(x))(y), or in Lisp notation (f x y) equals ((g x) y). By extension, fully currying a function f of three arguments produces g such that f(x, y, z) equals ((g(x))(y))(z), or in Lisp notation (f x y z) equals (((g x) y) z).

To do currying in the Scheme programming language:

 (define curry2
   (lambda (f)
     (lambda (x)    ; take the first argument
       (lambda y    ; and the rest of the args as a list
         (f x . y)))))

If g equals (curry2 f), then (f x y) equals ((g x) y), and (f x y z) equals ((g x) y z).

These languages automatically fully curry functions called with too few arguments:

See also:



All Wikipedia text is available under the terms of the GNU Free Documentation License

 
  Search Encyclopedia

Search over one million articles, find something about almost anything!
 
 
  
  Featured Article
Sakhalin

... and were unaware of the existence of the Strait of Tartary, which was discovered in 1809 by a Japanese, Mamiya Rinzo[?]. The Russian navigator Nevelskoi in 1849 definitively ...

 
 
 
This page was created in 22.8 ms