美文网首页
函数柯里化

函数柯里化

作者: 大脸猫_2e21 | 来源:发表于2018-04-14 00:34 被阅读0次
function add(a,b,c){
    return a+b+c
}
function multi(a,b,c,d){
            return a*b*c*d
        }

function curry(fn){
    var arr=[]
    var ceshi=function(){
        if(arguments.length===fn.length){
            return fn.apply(null,arguments)
        }else{
            arr=arr.concat([].slice.call(arguments))
            if(arr.length==fn.length){
                var result= fn.apply(null,arr)
                arr=[]
                return result
            }
        }
        return ceshi
    }
    return ceshi
}
const addEx=curry(add)
console.log(addEx(1,2,3)===6)  //=>true
console.log(addEx(1,2)(3)===6)  //=>true
console.log(addEx(1)(2,3)===6)  //=>true
console.log(addEx(1)(2)(3)===6)  //=>true


const multiEx=curry(multi)

console.log(multiEx(2,3,4,5)===120)  //=>true
console.log(multiEx(2,3,4)(5)===120)  //=>true
console.log(multiEx(2,3)(4,5)===120)  //=>true
console.log(multiEx(2)(3)(4)(5)===120)  //=>true

相关文章

网友评论

      本文标题:函数柯里化

      本文链接:https://www.haomeiwen.com/subject/kxdkkftx.html