Я не думаю, что я все еще смотрел. Я понимаю, что он делает, и как это сделать. Я просто не могу думать о ситуации, я бы использовал его.
Где вы используете currying в JavaScript (или где используются основные библиотеки)? DOM-манипуляции или общие примеры разработки приложений приветствуются.
В одном из ответов упоминается анимация. Такие функции, как slideUp
, fadeIn
, принимают элемент в качестве аргумента и обычно являются карриной функцией, возвращающей функцию высокого порядка со встроенной функцией "анимация" по умолчанию. Почему это лучше, чем просто применять более высокую функцию с некоторыми значениями по умолчанию?
Есть ли недостатки в его использовании?
В соответствии с запросом здесь приведены некоторые полезные ресурсы по каррированию JavaScript:
- http://www.dustindiaz.com/javascript-curry/
- Крокфорд, Дуглас (2008) JavaScript: Хорошие детали
- http://www.svendtofte.com/code/curried_javascript/ (Делает крюк в ML, поэтому пропустите весь раздел из "Кругового курса в ML" и начните снова в "Как писать нарисованный JavaScript" ).
- http://blog.morrisjohns.com/javascript_closures_for_dummies
- Как работают блокировки JavaScript?
- http://ejohn.org/blog/partial-functions-in-javascript (г-н Ресиг на деньги, как обычно)
- http://benalman.com/news/2010/09/partial-application-in-javascript/
Добавьте еще больше, когда они появятся в комментариях.
Таким образом, согласно ответам, каррирование и частичное применение в целом являются удобными методами.
Если вы часто "очищаете" функцию высокого уровня, вызывая ее с той же конфигурацией, вы можете каррировать (или использовать частично с помощью Resigs) функцию более высокого уровня для создания простых и сжатых вспомогательных методов.