From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?= ) Date: 1998-06-11T00:57:00+09:00 Subject: [ruby-list:8291] Re: proc scope けいじゅ@日本ラショナルソフトウェアです. In [ruby-list :8290 ] the message: "[ruby-list:8290] Re: proc scope ", on Jun/11 00:28(JST) Inaba Hiroto writes: >これって、自分が[ruby-dev:2473]あたりでひっかかっていた「イテレータ変 >数」が未定義かどうかの問題なのではないでしょうか? > > % ruby -e ' > def foo (a); p a; end > i = 0; x = [] > (0..9).each{|i| x[i] = proc{foo i} } > x[1].call; x[4].call; > ' > 9 > 9 > > % ruby -e ' > def foo (a); p a; end > x = [] > (0..9).each{|i| x[i] = proc{foo i} } > x[1].call; x[4].call; > ' > 1 > 4 > > % ruby -v > ruby 1.1b9_23(98/05/26) [i486-linux] 私も勘違いしていました. というのもirbを使うとちゃんと動作しないからで す(;_; ということでバグ報告: def foo (a); p a; end p = proc{proc{}}.call eval "(0..9).each{|i| x[i] = proc{foo i}}", p x[4].call が思った通りの動作をしていません(;_; # proc回りのバグがまだとれきれていないんですね.... # 複雑なことするんじゃなかった.... __ ................................石塚 圭樹@日本ラショナルソフトェア... ----------------------------------->> e-mail: keiju@rational.com <<---