// написать функцию для каррирования
const curry = (func) => {
// код
};
const sum = (a, b, c) => a + b + c;
const curriedSum = curry(sum);
alert( curriedSum(1, 2, 3) ); // 6, всё ещё можно вызывать нормально
alert( curriedSum(1)(2,3) ); // 6, каррирование первого аргумента
alert( curriedSum(1)(2)(3) ); // 6, каррирование всех аргументов
func.length - количество аргументов функции
const curry = (func) => {
const curried = (...args) => {
if (args.length >= func.length) {
return func(...args);
}
return (...args2) => curried(...args.concat(args2));
};
return curried;
};