Функция каррирования для любого количества аргументов
TODO: Напишите функцию каррирования, должна принимать функцию, а возвращать функцию
Каррирование – это трансформация функций таким образом, чтобы они принимали аргументы не как f(a, b, c), а как f(a)(b)(c)
Должна работать для любого количества аргументов
export const curry = () => {};
Ответы (1 шт):
Автор решения: Aleksandr Belous
→ Ссылка
const infiniteCurry = fn => {
const next = (...args) => {
return x => {
if (!x) {
return args.reduce((acc, a) => {
return fn.call(fn, acc, a)
}, 0);
}
return next(...args, x);
};
};
return next();
};
const iSum = infiniteCurry((x, y) => x + y);
console.log(iSum(1)(3)(4)(2)());