茶漬けと玉子焼き

swiftとrubyの教室

Ruby のカリー化

カリー化とは


調べてみると、


カリー化 (currying, カリー化された=curried) とは、複数の引数をとる関数を、引数が「もとの関数の最初の引数」で戻り値が「もとの関数の残りの引数を取り結果を返す関数」であるような関数にすること(あるいはその関数のこと)である。


ん?

と最初はなってしまうと思うが、要は複数の引数があるときに、
最初の引数をあらかじめ定義しておいて、
定義された引数と新たに設定した引数から、
戻り値を得る


ということ。。。


だと思う。


簡単な例を書いてみます


add = Proc.new { |x, y| x + y }
append_atmark = add.curry.('@')
append_atmark.('okinawa') # => '@okinawa'
append_atmark.('hokkaido') # => '@hokkaido'