Comparison
CurryingvsPartial application
Currying
the two-argument function became a function of one argument that returns a function of one argument.
Transforming a function of several arguments into a chain of single-argument functions. It is a mechanical transformation, not a technique you apply for its own sake; its point is that every function becomes composable and partially applicable by default. People routinely say currying when they mean partial application, and being able to name the difference is most of the value of knowing the word.
Full entry →Partial application
you fixed the first argument once and passed the resulting one-argument function around instead.
Supplying some of a function's arguments now and getting back a function that expects the rest. It is how a general function is specialised into a task-specific one — a logger bound to a component, a validator bound to a schema — and it is the everyday reason anyone cares about currying. The distinction is simple: currying restructures a function, partial application calls a function with fewer arguments than it takes.
Full entry →