无法理解 Ramda.js 中的 "lift"。

13 浏览
0 Comments

无法理解 Ramda.js 中的 "lift"。

查看Ramda.js的源代码,特别是"lift"函数。

lift

liftN

以下是给定的示例:

var madd3 = R.lift(R.curry((a, b, c) => a + b + c));
madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]

因此,结果的第一个数字很容易理解,abc分别为每个数组的第一个元素。第二个数字对我来说不太容易理解。它是每个数组的第二个值(2, 2, undefined),还是第一个数组的第二个值和第二个和第三个数组的第一个值?

即使忽略这里发生的顺序,我也不太明白它的价值。如果我在没有先进行lift的情况下执行此操作,我将得到拼接为字符串的数组。这似乎有点像flatMap,但我似乎无法理解其背后的逻辑。

0