Não consigo entender o que é "lift" no Ramda.js
Olhando a fonte do Ramda.js, especificamente a função "lift".
Aqui está o exemplo dado:
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]
Portanto, o primeiro número do resultado é fácil,a
, b
ec
, são todos os primeiros elementos de cada matriz. O segundo não é tão fácil para mim entender. Os argumentos são o segundo valor de cada matriz (2, 2, indefinido) ou é o segundo valor da primeira matriz e os primeiros valores da segunda e terceira matriz?
Mesmo desconsiderando a ordem do que está acontecendo aqui, eu realmente não vejo o valor. Se eu executar isso semlift
primeiro eu vou acabar com as matrizesconcat
como strings. Isso parece estar funcionando comoflatMap
mas parece que não consigo seguir a lógica por trás disso.