Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

lambdaの別名「->(x)」

lisper御用達のメソッドといえば、lambdaですね。
許容可能なLispなんて呼ばれることもある、Rubyも当然使えます。
1.9系以降では、使いやすくなるように->という別名が与えられています。

->(a,b){ p [a,b] }

lambda{|a, b| p [a, b] }

と同じ意味です。

実例

def deriv(f, dx)
  ->(x){ (f[x + dx] - f[x]) / dx }
end
 
sin = ->(x){ Math.sin(x) }
 
cos = deriv(sin, 0.00000001)
 
puts sin[Math::PI / 2]
puts cos[Math::PI / 2]

……うーん、この