9月4日とか5日あたりにTwitterでカリー化の話で盛り上がってたので、話についていけなかったひと向けに、自分なりにRubyを使ってカリー化の説明を試みます。 はじめに、Rubyについてかるーく。 xyz = ->(x, y, z){ return x * y * z } puts xyz.call(2, 3, 4) #=> 24 puts xyz.call(3, 3, 3) #=> 27 これが、「三つの引数をとって、すべてを掛け合せた数値を返す」函数(みたいなもの)のコードになります。return はなくても良いのですが、このあとの説明が読みにくくなるので、意味を明確にするために付ける方針で統一します。 この書き方(->(n){ ... })は、もしかするとあなたが既に慣れ親しんでるかもしれない「メソッド」とは似てるけど別物なので気をつけてください。その説明は省きますが、defキーワ