Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

312
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!