Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

315
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda