Currying
In plain terms
Turning a multi-argument function into a chain of single-argument functions.
Going deeper
Currying transforms f(a, b, c) into f(a)(b)(c), enabling partial application where you fix some arguments now and supply the rest later. It's common in functional programming.
Under the hood
Enables partial application and function composition; each call returns a new function capturing the prior argument.
Examples
JavaScript function composition, Haskell (curried by default), lodash curry.
Think of it like...
Like a coffee order taken one detail at a time, each step remembering your previous choices.