Skip to content

函数柯里化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))