函数柯里化currying
js
function currying(fn) {
return function curryied(...args) {
if (args.length < fn.length) {
return function (...args2) {
return curryied.apply(this, [...args, ...args2])
}
} else {
return fn.apply(this, args)
}
}
}
// 测试
function sum(a,b,c,d) {
return a+b+c+d
}
let sumCurrying = currying(sum)
console.log(sumCurrying(1)(2)(3)(5))