From: matz@... (Yukihiro Matsumoto) Date: 2002-06-18T14:30:09+09:00 Subject: [ruby-dev:17510] Re: blocks and local variables まつもと ゆきひろです In message "[ruby-dev:17509] Re: blocks and local variables" on 02/06/18, Takaaki Tateishi writes: |互換性を捨てるほどのメリットはないと思いますが,自然だとも思います. そう期待する人も結構いることと、そういう使い方がほとんどであ ろうという点には同意します。 でもね、私が問題だと思っているのは実はそこではないんですよ。 私が問題にしているのは、ブロックローカル変数の問題全般(特に 名前の重複)です。そこで |ブロック内変数についてもこの考えを適用してしまうと,互換性がなくなる |ものが非常に多いですし,ブロック外への代入を実現する直観的な方法がな |いと,プログラムし易いとは言えなくなります.そのため,現状維持が良い |のかなとなんとなく思っています. とされちゃうと、私にとってのメリット(つまり問題解決に益する かという点で)が無いだけでなく、まだ決まっていない問題解決案 との整合性に悩む可能性が出る点でデメリットの方が大きいです。 |どこかのバージョンで大きく仕様変更して,すべてローカルというのも良い |ですが,さすがに1.xではあまりして欲しくないなというのが本音です. よっぽど互換性に問題がない場合以外にはそんなにすぐ実現するつ もりはないので、この点において気にする必要はないです。 |1.xでは上のブロック内変数にアクセスするというみせかけだけの文法を用意 |して,現状維持も良いかもしれないと今ちょっとだけ思っています. 「上のブロック内変数にアクセスするというみせかけだけの文法」っ てなんですか? |:= のような「常に宣言して代入」という案は,結局宣言を明示していること |になりますから先の宣言を明示したくないという思想を考えるとあまり賛成 |も反対もできないというくらいです. じゃまにならなきゃ宣言があってはいけないわけではないんですよ。 これをあまり杓子定規に捉えちゃうと考えの幅が狭まります。