Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

322
Visualizações
¿Cuál es el punto de _curry1() en ramda.js?

Estoy leyendo ahora mismo el código fuente de Ramda y no entiendo el punto de _curry1() .

 function _curry1(fn) { return function f1(a) { if (arguments.length === 0 || _isPlaceholder(a)) { return f1; } else { return fn.apply(this, arguments); } }; }

Las funciones que se procesan con esta función se pueden llamar sin argumentos.

 const inc = (n) => n + 1 const curriedInc = _curry1(inc) // now it can be called like this curriedInc(1) // => 2 curriedInc()(1) // => 2 // but it works only with no arguments provided const add = (a, b) => a + b const curriedAdd = _curry1(add) curriedAdd(1) // => NaN curriedAdd(1)(1) // => TypeError: curriedAdd(...) is not a function curriedAdd() // => function f1(a)

Pregunta : Me parece que no puedes encadenar argumentos con esta función en absoluto. ¿Cuáles son los casos de uso de esta función? ¿Qué tan diferente es curriedInc()(1) de inc(1) ?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

_curry1 , _curry2 y _curry3 son trucos para mejorar el rendimiento que no se pueden usar en la función pública de curry . Ramda (descargo de responsabilidad: soy un autor) los usa para realizar varias tareas, claramente principalmente haciendo el currículo, pero también verificando los marcadores de posición para que podamos hacer correctamente alguna aplicación parcial. La otra cosa mágica sobre el curry de Ramda es la forma en que puede aplicar todos, algunos o incluso ninguno de los argumentos requeridos, y mientras no estemos completos, obtiene otra función buscando los restantes.

Obviamente _curry1 teóricamente no debería ser necesario, pero hace que sea más fácil agregar este tipo de consistencia:

 const a = curry ((a, b, c) => ...) a (1, 2, 3) == a (1, 2) (3) == a (1) (2, 3) == a (1) (2) (3) == a () () (1, 2) () (3)

Fíjate en eso último. Cuando llama a una función curry que aún busca argumentos sin ningún argumento, obtiene la misma función.

curry1 es lo que hace que eso suceda; agrega consistencia. Pero eso es todo para lo que es.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda