currying
Currying is a transformation in functional programming that converts a function that takes multiple arguments into a sequence of functions, each taking a single argument. In other words, a function f(a, b, c) can be viewed as f(a)(b)(c). The overall result remains the same, but intermediate results are themselves functions waiting for the next argument.
The term currying is named after Haskell Curry, a logician whose name became associated with the technique.
How it works in practice varies by language. In a curried view, a two-argument function is seen
Relation to partial application is close but distinct. Partial application fixes some arguments of a function