鍋あり谷あり

テーマを決めずに適当に書いています。

ruby の lambda

最近 mtasc/Action Script 2.0 でクロージャをよく使う。クロージャを書いていて不愉快なのは、function と return の綴りが長いことである。プリプロセッサ書いてやろうかと思うぐらいである。少なくとも今のところ我慢して function, return と書いているが。
まだ ruby で(lambda って何? と思って書いた時を別にすれば)lambda を使ったことはないんだが、クロージャになれてきたので使いそうだと思う。
で。lambda 式の新文法。
http://www.rubyist.net/~matz/20050722.html#p02
私は
f = (x,y)->{ puts( x+y ); }
のような形がいいと思うんだが、どうも引数列の前に記号が必要とのこと。
であれば、「|...|」を置き換える方式で:

  • f = {=(x,y) puts( x+y ) }
  • ary.each{=(x) puts x; }

はどうだろう。あるいはイコールじゃなくて不等号とか。

とはいえ。上記URLにある

proc = ->(x, y) { ... }

で、私としては違和感はない。これで決まったらアクションスクリプト用のプリプロセッサ書いちゃうかも。