Глядя на источник для Ramda.js, особенно на функцию "лифта".
Здесь приведен пример:
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]
Итак, первое число результата легко, a
, b
и c
- все первые элементы каждого массива. Второй мне не так легко понять. Являются ли аргументы вторым значением каждого массива (2, 2, undefined) или это второе значение первого массива и первые значения второго и третьего массива?
Даже не учитывая порядок происходящего здесь, я действительно не вижу значения. Если я выполнил это без lift
ing, сначала в итоге получим массивы concat
, включенные как строки. Кажется, что это похоже на работу flatMap
, но я не могу следовать логике, стоящей за ней.