, , .
, :
const curryN = n => f => {
let next = (m, acc) => x => m > 1 ? next(m - 1, acc.concat([x])) : f(...acc, x);
return next(n, []);
};
const sum = (...args) => args.reduce((acc, x) => acc + x, 0);
sum(1, 2, 3, 4, 5);
curryN(5)(sum)(1)(2)(3)(4)(5);
let sum3 = curryN(3)(sum);
sum3(1)(2)(3);
let sum5plusX = curryN(2)(sum)(5);
sum5plusX(6);
. Array.reduce. currying. .