青山です。 Mon, Jun 07, 1999 at 10:33:39AM +0900 において Yukihiro Matsumoto さん曰く: > 私はそうは思ってないんですが,気持ちは理解できる部分はあります. 微妙な差ですからね。私も今回の場合についても + がうまくいってしまえば 再度提案したりしなかったでしょうし。 私が問題に思っているのは、ブロックがどちらに引き渡されるかという事では なく、それ以外(前回は代入が出来なかった)の問題ですから。 (すでに解決した)代入が出来ないとか、+ が利用出来ないとか、これらの事は マニュアルにも記述がありませんし、やはり {} と同じく扱えて欲しいわけです。 つまり、ブロックを引き渡す相手が現在のままでも、それ以外の点についての {} と do end での差が無くなれば OK という事です。 そうでない現在では、結局、do end で記述すると(一見)動かない場合がある ので、やむなく {} を使っているとか、それが心配で {} を使っているという 雰囲気が感じられるので、それを無くしたいわけです。 せっかくの楽しく書くための言語なのですからね。今後の入門者のためにも余 計な心配無しに書ける言語になって欲しいと願っています。 という事で、 > で,これをstatementではなく,primaryにしてしまうことで,非互 > 換性はほとんどなく,かつ最初のニーズである > > foo(a,b)do..end + bar(c,d)do..end > > を実現できます.いかがでしょうね. 実現さえできればそれで嬉しいです。 Mon, Jun 07, 1999 at 10:45:08AM +0900 において Yukihiro Matsumoto さん曰く: > と思って試しに文法をいじってみたのですが,やや非互換性があり > ますね.つまり, > > while foo() do > ... > end > > のようなケースが文法エラーになります.もともとwhileやuntil, > forの後ろのdoはあまり用いられてなかったのもあって(auto > indentもヘンになりますし),大きな問題にはならないとは思いま > すが,なんかきれいじゃないなあ. while(foo()) do ... end while(foo()do ... end) do ... end という事ですよね。これは同じ end を用いている以上避けられないでしょう し、do を付けなければ互換性もあるという事ですから、+ が使えない事より はいいように感じられます。 -- 青山 和光 Wakou Aoyama <wakou / fsinet.or.jp>