首页 > 解决方案 > 如何为所有类型的输入纠正可变长度柯里化函数或一般柯里化函数?

问题描述

function currying(func) {
//I need to complete this for all diiferent forms of add
}


//1st form
const add = currying(function (a, b) {
    return a + b;
})
add(1, 2) //should yield 3
add(1)(2) //should yield 3

//second form
const add = currying(function (a, b, c) {
    return a + b + c;
})
add(1, 2)(3) //should yield 6
add(1)(2)(3) //should yield 6
add(1, 2, 3) //should yield 6

//third form
const add = currying(function (a, b, c, d) {
    return a + b + c + d;
})
const a11 = add(1)
a11(2)(3)(4) //should yield 9
a11(2, 3, 4) //should yield 9

如何完成所有这些情况下最“currying”的功能?“柯里化”函数必须为任何此类函数调用返回正确答案。

标签: javascriptvariadic-functionscurryingvariadicarity

解决方案


推荐阅读