青山です。

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>