Je ne pense pas avoir encore goûté au curry. Je comprends ce qu'il fait et comment le faire. Je ne peux tout simplement pas penser à une situation dans laquelle je l'utiliserais.
Où utilisez-vous le curry en JavaScript (ou où les principales bibliothèques l'utilisent-elles)? Les manipulations DOM ou les exemples généraux de développement d'applications sont les bienvenus.
L'une des réponses mentionne l'animation. Des fonctions comme slideUp
, fadeIn
prennent un élément comme argument et sont normalement une fonction curry retournant la fonction d'ordre supérieur avec la "fonction d'animation" intégrée par défaut. Pourquoi est-ce mieux que d'appliquer simplement la fonction supérieure avec certaines valeurs par défaut?
Y a-t-il des inconvénients à l'utiliser?
Comme demandé, voici quelques bonnes ressources sur le curry JavaScript:
- http://www.dustindiaz.com/javascript-curry/
- Crockford, Douglas (2008) JavaScript: Les bonnes parties
- http://www.svendtofte.com/code/curried_javascript/ (fait un détour par le ML, alors ignorez toute la section de «Un cours intensif en ML» et recommencez à «Comment écrire du JavaScript curry»)
- http://web.archive.org/web/20111217011630/http://blog.morrisjohns.com:80/javascript_closures_for_dummies
- Comment fonctionnent les fermetures JavaScript?
- http://ejohn.org/blog/partial-functions-in-javascript (M. Resig sur l'argent comme d'habitude)
- http://benalman.com/news/2010/09/partial-application-in-javascript/
J'ajouterai plus au fur et à mesure qu'ils apparaissent dans les commentaires.
Ainsi, selon les réponses, le curry et l'application partielle en général sont des techniques de commodité.
Si vous «affinez» fréquemment une fonction de haut niveau en l'appelant avec la même configuration, vous pouvez curry (ou utiliser le partiel de Resig) la fonction de niveau supérieur pour créer des méthodes d'aide simples et concises.
svendtofte.com
semble mort - trouvé sur la machine WayBack à l'adresse web.archive.org/web/20130616230053/http : //www.svendtofte.com/... Désolé, blog.morrisjohns.com/javascript_closures_for_dummies semble être en panne trop