function currying(fn) {
return function curried(...args1) {
if (args1.length >= fn.length) {
return fn.apply(this, args1);
} else {
return function (...args2) {
return curried.apply(this, [...args1, ...args2]);
};
}
};
}
function sum(arg1, arg2, arg3, arg4, arg5) {
return arg1 + arg2 + arg3 + arg4 + arg5;
}
const sumCurried = currying(sum);
console.log(sumCurried(1)(2)(3)(4)(5));
console.log(sumCurried(1, 2, 3)(4, 5));
最后修改:2022 年 08 月 11 日 11 : 09 AM
© 允许规范转载