【发布时间】:2016-07-17 02:36:12
【问题描述】:
假设我有 3 个数组
var first = [0, 1, 2, 3];
var second = [0, 1, 2, 3];
var third = [0, 1, 2, 3];
我想创建一个 curried 函数,在其中设置第一个参数,指示我想在作为参数传递的数组中添加哪个单元格......理想情况下,我希望该函数能够获取无限数量的数组。 ...
例如:
mycurriedfunction(1) 表示我想访问我传入的数组的单元格 1 处的值并将它们相加。
因此做:
mycurriedfunction(1)(first) 将返回 1
mycurriedfunction(1)(first)(second) 将返回 2
mycurriedfunction(2)(first)(second)(third) 将返回 6
这可能吗?
如果不是,那么有哪些替代方案可以实现相似甚至相同的结果?
【问题讨论】:
-
那么你需要可执行的数字类型吗?你可以试试这个:jsbin.com/xupaha/edit?js,console
-
这很简单:
myFn(2, [first, second, third])。但是你的 API 是不可能的。 @iofjuupasli 的模拟可能是你能做的最好的,但不是特别接近。
标签: functional-programming currying ramda.js