アメリカに行く前にさんざん悩んだlambdaの「->」記法だが、 Haskell方面には不評だが、このままでいこうと思う。 Perl6と同じなのもプラスだが、無名関数を簡潔な記法で提供できることは後々にメリットが大きいと思えるからだ。もっとも、以下の点はまだ議論の余地があると思う。
記号。
「LAMBDA args { ... }」という構文は決まりでも、 LAMBDAの部分になにが入るかはまだ変更できると思う。 でも「->」以上に私の心に響くものにはまだ出会っていない。
ブロック
現在「ary.each -> x {puts x}」は「eachにlambdaを引数として渡す」ではなく、 「eachにブロックを渡す」ように動作する。ここもPerl6に合わせているわけだが、 この部分についてはあまり合わせる必然性はないようにも感じる。 例外なしに「->x{...}」はいつもlambdaにした方が単純でよいかもしれない。
あと、中田さんの<URL:http://www.rubyist.net/~nobu/t/20050805.html>を参考にして、 「->」の後ろに括弧を省略したときでもオプショナル引数を指定できるようにした。