それなりブログ

とあるWebエンジニアのそれなりのブログ、JavaScript/Node.js/Python/PHP/ゲーム作成 など

カリー化

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

3 Responses to “カリー化”


Categories

Archives