Currying

In mathematics and computer science, currying is the technique of transforming a function that takes n multiple arguments (or an n-tuple of arguments) in such a way that it can be called as a chain of functions, each with a single argument (partial application). It was originated by Moses Schönfinkel and later re-discovered by Haskell Curry. Because of this, some say it would be more correct to name it schönfinkeling.

Uncurrying is the dual transformation to currying, and can be seen as a form of defunctionalization. It takes a function f(x) which returns another function g(y) as a result, and yields a new function f '(x,y) which takes a number of additional parameters and applies them to the function returned by function f. The process can be iterative if necessary.

Read more about Currying:  Motivation, Definition, Mathematical View, Naming, Contrast With Partial Function Application