Ruby のカリー化
カリー化とは
調べてみると、
カリー化 (currying, カリー化された=curried) とは、複数の引数をとる関数を、引数が「もとの関数の最初の引数」で戻り値が「もとの関数の残りの引数を取り結果を返す関数」であるような関数にすること(あるいはその関数のこと)である。
ん?
と最初はなってしまうと思うが、要は複数の引数があるときに、
最初の引数をあらかじめ定義しておいて、
定義された引数と新たに設定した引数から、
戻り値を得る
ということ。。。
だと思う。
簡単な例を書いてみます
add = Proc.new { |x, y| x + y } append_atmark = add.curry.('@') append_atmark.('okinawa') # => '@okinawa' append_atmark.('hokkaido') # => '@hokkaido'
こちらもどうぞ