Currying

Currying is a technique used in mathematics and computer science that consists of changing a function that takes several arguments into a number of functions that each take one argument. Mathematicians Moses Schönfinkel[1][2][3] and Gottlob Frege laid the groundwork for this technique, which is named after Haskell Brooks Curry.[4][5] Currying is used in Lambda calculus. Some programming languages, such as ML and Haskell say that functions can only have one argument.

References

  1. Strachey, Christopher. Fundamental Concepts in Programming Languages. Higher-Order and Symbolic Computation 13 (2000). p. 11–49. doi:10.1023/A:1010000313106. (Reprinted lecture notes from 1967.)
  2. Reynolds, John C.. Definitional Interpreters for Higher-Order Programming Languages. Higher-Order and Symbolic Computation 11 (4) (1998). p. 374. doi:10.1023/A:1010027404223.
  3. Kenneth Slonneger and Barry L. Kurtz. Formal Syntax and Semantics of Programming Languages. p. 144.
  4. Henk Barendregt, Erik Barendsen, "Introduction to Lambda Calculus[dead link]", March 2000, page 8.
  5. Curry, Haskell. Combinatory logic I (1958). Amsterdam, Netherlands: North-Holland Publishing Company.