カリー化
2007年9月10日
カリー化とは、Wikipediaによると、「直感的には『引数を幾つか固定すると、残った引数の関数が得られる』ということ」 ・・・だと。
(「直感的には」=「簡単に言うとねぇ」ってことっぽいですけど)
(「直感的には」=「簡単に言うとねぇ」ってことっぽいですけど)
なんでいきなりカリー化なのかというと、サイ本にその実装例が載ってて、プログラム的な用途も含めて理解したので
// サイ本のカリー化のサンプルコード function bindArguments(f){ var boundArgs = arguments; return function(){ var args = []; for (var i = 1; i < boundArgs.length; i++) args.push(boundArgs[i]); for (var i = 0; i < arguments.length; i++) args.push(arguments[i]); return f.apply(this, args); }; };
使ってみる
var makeCurry = function(apple, honey, spice){ if (apple && honey && spice) return apple + "と" + honey + "で" + spice + "化しようぜ"; }; var makeCurryByVermont = bindArguments(makeCurry, "りんご", "ハチミツ"); alert(makeCurryByVermont("カリー"));
おー
- 前略オフクロ様 -
Haskell勉強会から半年経過して、はじめて前に進むことができました。
Haskell勉強会から半年経過して、はじめて前に進むことができました。