Каррирование (currying)
Коротко: Каррирование разбивает функцию с несколькими параметрами на цепочку функций с одним параметром: f(a, b, c) превращается в f(a)(b)(c).
Подробнее: Название напоминает логика Хаскелла Карри. Приём позволяет частичное применение: вы передаёте лишь часть аргументов и получаете новую специализированную функцию. В Haskell, OCaml и F# все функции автоматически каррированы; в других языках это строится на замыканиях.
Подробности
const add = (a) => (b) => a + b;См. также: функция высшего порядка, лямбда-выражение, замыкание