Загрузка…
JavaScript · middle · сложность 5
Currying — превращение функции от многих аргументов в цепочку функций по одному аргументу: f(a, b, c) → f(a)(b)(c). Удобно для частичного применения и композиции.
f(a, b, c)
f(a)(b)(c)
function add(a) { return function (b) { return function (c) { return a + b + c; }; }; } const addOne = add(1); const addOneAndTwo = addOne(2); const result = addOneAndTwo(3); // 6
Или короче: const add = (a) => (b) => (c) => a + b + c.
const add = (a) => (b) => (c) => a + b + c
Currying (строго по одному аргументу) ≠ любая partial application (можно зафиксировать несколько сразу).
Итог: каррирование даёт серию unary-функций и точки для частичной подстановки аргументов.