カリー化
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勉強会から半年経過して、はじめて前に進むことができました。