From: SASADA Koichi Date: 2004-06-23T14:13:26+09:00 Subject: [ruby-dev:23755] Block parameter in Ruby2.0  ささだです。 http://www.namikilab.tuat.ac.jp/~sasada/diary/200406.html#d22 でネタにさせてもらって,まつもとさんの返信をいただいたのですが, iter{|@a, @@b, C| ... } こういう使い方について, > まつもと(Wed Jun 23 07:56:32 JST 2004) > 2.0ではブロックパラメータはローカル変数に制限しようと思ってます  とご返信頂いただきました.  現状の仕様をやめる原因は,「仕様のわかり辛さ」,でしょうか. #a) inter{|#1, #2, #3| @a, @@b, C = #1, #2, #3 ... } もしくは #b) inter{|#1, #2, #3| @a = #1 @@b = #2 C = #3 ... } (#x は重複しないローカル変数名)  のシンタックスシュガーだと定義してもらえるなら,実行系については あんまり問題ないような気がしました. (もうちょっと言うとパース時にこう変えてくれるなら) (b が好みです)  多重代入自体も変更が入るのかもしれませんが.  いっそ, def method(@a, @@b) ... end  も同じノリで,とか考えましたが,言語デザインとしてどうなの かよくわからないのでパスします. def initialize(@a, @b) ... end なんて書きたい人はもしかしたら居るかも.  すでに終了した議論であったらすみません. -- // SASADA Koichi at atdot dot net //