No creo que haya asimilado el curry todavía. Entiendo lo que hace y cómo hacerlo. Simplemente no puedo pensar en una situación en la que lo usaría.
¿Dónde usas curry en JavaScript (o dónde lo usan las bibliotecas principales)? La manipulación de DOM o ejemplos generales de desarrollo de aplicaciones son bienvenidos.
Una de las respuestas menciona la animación. Funciones como slideUp
, fadeIn
tomar un elemento como argumentos y normalmente son una función curricular que devuelve la función de orden superior con la "función de animación" predeterminada incorporada. ¿Por qué es eso mejor que simplemente aplicar la función superior con algunos valores predeterminados?
¿Hay algún inconveniente para usarlo?
Como se solicita aquí, hay algunos buenos recursos sobre el curry de JavaScript:
- http://www.dustindiaz.com/javascript-curry/
- Crockford, Douglas (2008) JavaScript: Las buenas partes
- http://www.svendtofte.com/code/curried_javascript/ (se desvía hacia ML así que omita toda la sección de “Un curso intensivo en ML” y comience nuevamente en “Cómo escribir JavaScript curry”)
- http://web.archive.org/web/20111217011630/http://blog.morrisjohns.com:80/javascript_closures_for_dummies
- ¿Cómo funcionan los cierres de JavaScript?
- http://ejohn.org/blog/partial-functions-in-javascript (Sr. Resig en el dinero como de costumbre)
- http://benalman.com/news/2010/09/partial-application-in-javascript/
Agregaré más a medida que surjan en los comentarios.
Entonces, según las respuestas, el currículum y la aplicación parcial en general son técnicas de conveniencia.
Si con frecuencia "refina" una función de alto nivel al llamarla con la misma configuración, puede usar la función de nivel superior para crear métodos de ayuda simples y concisos.
svendtofte.com
parece estar muerto: lo encontré en la máquina WayBack en web.archive.org/web/20130616230053/http://www.svendtofte.com/… Lo sentimos, blog.morrisjohns.com/javascript_closures_for_dummies parece estar abajo también