Functional composition and currying
Some functional languages work by transforming a multiargument function syntax into a collection of single argument functions. This process is called currying—it's named after logician Haskell Curry, who developed the theory from earlier concepts.
Currying is a technique for transforming a multiargument function into higher order single argument functions. In the simple case, we have a function ; given two arguments x and y, this will return some resulting value, z. We can curry this into two functions: and . Given the first argument value, x, the function returns a new one-argument function, returns a new one-argument function, . This second function can be given an argument, y, and will return the resulting value, z.
We can evaluate a curried function in Python as follows: f_c(2)(3)
. We apply the curried function to the first argument value of 2
, creating a new function. Then, we apply that new function to the second argument value of 3
...