javascript - 如何为所有类型的输入纠正可变长度柯里化函数或一般柯里化函数?
问题描述
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”的功能?“柯里化”函数必须为任何此类函数调用返回正确答案。
解决方案
推荐阅读
- json - 在带有状态和道具的列表中显示 JSON 对象
- scala - 合并多个 RDD
- python-2.7 - 评估 python 格式字符串的预期值数量
- r - 在列表中使用 iconv?
- python - Python 最佳实践:初始化变量
- linux - linux权限问题
- vba - 从 Word VBA 脚本调用 CreateObject("Lotus.NotesSession") 时出现错误 429
- angular - Angular 4 中的查询参数
- javascript - 如何在Javascript中处理包含数字和关联数组的数组?
- angular - 同一服务器实例上的 Nrwl Nx 管理页面