From: matz@... (Yukihiro Matsumoto) Date: 2002-06-26T16:50:40+09:00 Subject: [ruby-dev:17599] Re: Ruby grammar まつもと ゆきひろです In message "[ruby-dev:17596] Re: Ruby grammar" on 02/06/26, Tanaka Akira writes: | |In article <1024990623.488277.22597.nullmailer@picachu.netlab.jp>, | matz@ruby-lang.org (Yukihiro Matsumoto) writes: | |> | a b {} {} |> | |> |というのも問題かな? |> |> 「{}は一番右側のメソッド呼び出し(のように解釈できるもの)につ |> く」というイメージがあるので、両方の {} が b につくように解 |> 釈されてしまいそうに思います。許さない方が良いのではないでしょ |> うか。 | |メソッドは一つしかブロックをとれないというのに、なぜ両方の {} が b に |つくように見えるのか(幸いにして)理解不能なのですが、「いつの日にか一つ |のメソッドが複数のブロックを扱えるように」許さない方がよいというなら喜 |んで禁止に同意します。 複数ブロックが取れるようにするかどうかはまた難しい問題ですが、 そうでなくても a b {} {} の意味が a(b(){}){} なんだか a(b({})){} なんだか a(b({}){}) なんだか分からなくなりそうですし、禁止した方が良いのではない かと。 |> 確かに。call_argsなどからcommandを抜けば良いのかなあ。 |> いや、もちろん互換性は無いので、適切な移行パス(まずは警告し |> て、それから次の次のバージョンくらいでエラーにする)を用意す |> る必要があるのですが。 | |ネスト不可というだけの規則では、許す範囲は広がると想定してました。 | a 1, 2, 3 do end.b 4, 5, 6 do end |とか。 ああ、そうか。勘違いしてました。 ここで抜くというのは a b c のような記法(「b c」がcommand)のことです。