私はまだカレーに慣れていないと思います。私はそれが何をするのか、そしてそれを行う方法を理解しています。使うシチュエーションが思い浮かびません。
JavaScript のどこでカリー化を使用していますか (またはそれを使用している主要なライブラリはどこですか)? DOM 操作または一般的なアプリケーション開発の例を歓迎します。
答えの1つはアニメーションに言及しています。のような関数は引数として要素slideUp
をfadeIn
取り、通常はデフォルトの「アニメーション関数」が組み込まれた高次関数を返すカリー化された関数です。いくつかのデフォルトで上位関数を適用するよりも優れているのはなぜですか?
それを使用することの欠点はありますか?
JavaScript のカリー化に関する優れたリソースを以下に示します。
- http://www.dustindiaz.com/javascript-curry/
- Crockford, Douglas (2008) JavaScript: 良い部分
- http://www.svendtofte.com/code/currried_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/
コメントが増えたら追加します。
したがって、答えによると、カリー化と部分適用は一般的に便利な手法です。
高レベル関数を同じ構成で呼び出して頻繁に「改良」する場合は、高レベル関数をカリー化 (または Resig のパーシャルを使用) して、シンプルで簡潔なヘルパー メソッドを作成できます。