Я не думаю, що я ще погризла каррі. Я розумію, що це робить, і як це зробити. Я просто не можу придумати ситуацію, яку б я використав.
Де ви використовуєте currying в JavaScript (або де основні бібліотеки використовують його)? Маніпуляції з DOM або загальні приклади розробки додатків вітаються.
В одній з відповідей згадується анімація. Такі функції, як slideUp
, fadeIn
приймають елемент як аргумент і, як правило, є криволінійною функцією, що повертає функцію високого порядку із вбудованою за замовчуванням «функцією анімації». Чому це краще, ніж просто застосувати функцію вищого рівня з деякими типовими настройками?
Чи є якісь недоліки в його використанні?
Як вимагається тут, є кілька хороших ресурсів для JavaScript currying:
- http://www.dustindiaz.com/javascript-curry/
- Crockford, Douglas (2008) JavaScript: хороші частини
- http://www.svendtofte.com/code/curried_javascript/ (Виїжджає в ML, тому пропустіть увесь розділ від “Курс аварійного завершення в ML” і почніть знову з “Як написати допитливий JavaScript”)
- http://web.archive.org/web/20111217011630/http://blog.morrisjohns.com:80/javascript_closures_for_dummies
- Як працюють закриття JavaScript?
- http://ejohn.org/blog/partial-functions-in-javascript (Містер Резіг про гроші, як зазвичай)
- http://benalman.com/news/2010/09/partial-application-in-javascript/
Я додам більше, коли вони з’являться у коментарях.
Так, згідно з відповідями, каррі та часткове застосування загалом - це зручні прийоми.
Якщо ви часто «доопрацьовуєте» функцію високого рівня, викликаючи її з однаковою конфігурацією, ви можете довірити (або використовувати часткову Резігу) функцію вищого рівня для створення простих, стислих допоміжних методів.
svendtofte.com
виглядає мертвим - знайшли його на машині WayBack, хоча на веб- сайті web.archive.org/web/20130616230053/http://www.svendtofte.com/… Вибачте, blog.morrisjohns.com/javascript_closures_for_dummies здається вниз теж