昨日も書いた http://www.rubyist.net/~matz/20050722.html#p02 の話。
まずはリンク元を明示せずに引用して:
けっきょく、()を使うってことの問題点は何なんだったっけ??
{(x, y) x + y}
のよーな形式。
この文法は、多重代入と区別がつかなくなるケースがある。
実際、今の ruby で:
lambda{ (ARGV); p 1 } lambda{ (x, y=4); puts "#{x} #{y}" }
などが普通に実行できるので、何の装飾もない括弧は使えないと思う。
なんて書いていたら思いついた:
f = { x, y -> puts( x+y ) } ary.each{ x -> puts x }
ってのはどうだろう。
これなら引数の後に「->」があるので、関数型の人たちも安心。
パースも簡単。のような気がするけど定かではない。
見た目もなんとなくラムダっぽい気がする。
バックスラッシュを使わないのでロケールの問題が軽微。
まあ。
こんなところに書いても Matz さんは気づかないような気もするが。