ついでにカリー化
複数の引数をとる関数を、引数が「もとの関数の最初の引数」で戻り値が「もとの関数の残りの引数を取り結果を返す関数」であるような関数にすること。
クロージャよりもさっぱりだよ!!
サンプル
書いてみたはいいけどいまいち良さが理解できていない。
Wikipedia に出てきた除算関数
#!/usr/bin/env ruby def div x return lambda{|y| x / y} end d1 = div 10 puts d1.call 2 # >> 5
Ruby1.9 で
ラムダらむだ
#!/opt/local/bin/ruby1.9 def div x return ->(y){ x / y } end d1 = div 10 puts d1.(2)
さらに悪のりしてみる
λ
#!/opt/local/bin/ruby1.9 div = ->(x){ ->(y){ x / y } } puts div.(10).(2)
なははは。きもい!
なんか楽しくなってきた。
参考: Ruby 1.9の新しいλ式の文法がキモい件 - ’(rubikitch wanna be (a . lisper))