PlanetMath (more info)
 Math for the people, by the people.
Encyclopedia | Requests | Forums | Docs | Wiki | Random | RSS  
Login
create new user
name:
pass:
forget your password?
Main Menu
currying (Definition)

Currying is the technique of emulating multiple-parametered functions with higher-order functions. The notion is that a function of $ n$ arguments can be thought of as a function of 1 argument that maps to a function of $ n-1$ arguments. A curried function is a function represented by currying, e.g.

$\displaystyle f : \mathbb{R}\rightarrow(\mathbb{R}\rightarrow\mathbb{R}) $

For conciseness, the mapping operator $ \rightarrow$ is usually considered right-associative, so that $ f : \mathbb{R}\rightarrow\mathbb{R}\rightarrow\mathbb{R}$ is equivalent.

In contrast, an uncurried function is usually specified as a mapping from a Cartesian product, such as

$\displaystyle f : \mathbb{R}\times\mathbb{R}\rightarrow\mathbb{R} $

The term currying is derived from the name of Haskell Curry, a 20th century logician. However, Curry was not the first person to discover this notion, as it was first introduced by Gottlob Frege in 1893 and expanded by Moses Schönfinkel in the 1920s. Hence the notion is sometimes referred to as schönfinkeling.



"currying" is owned by mps. [ full author list (2) | owner history (1) ]
(view preamble)

View style:

See Also: higher-order function

Other names:  schönfinkeling, schönfinkelization
Also defines:  curried function, uncurried function

Cross-references: Haskell, term, Cartesian product, equivalent, operator, mapping, arguments, higher-order functions, functions

This is version 3 of currying, born on 2002-03-29, modified 2004-05-25.
Object id is 2806, canonical name is Currying.
Accessed 5203 times total.

Classification:
AMS MSC68Q01 (Computer science :: Theory of computing :: General)

Pending Errata and Addenda
None.
[ View all 1 ]
Discussion
Style: Expand: Order:
forum policy

No messages.

Interact
rate | post | correct | update request | add derivation | add example | add (any)