Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

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]

……うーん、この