From: sheepman Date: 2007-05-29T22:53:03+09:00 Subject: [ruby-dev:30832] callcc, each and local val こんばんは、sheepman です。 trunk の callcc に関してです。 Array#each のブロックの中で callcc を呼んだ時の、ローカル変数の 参照がおかしいです。 $ cat t.rb vv = 0 $c = 0 [1, 2, 3].each{|i| callcc {|k| $k = k} $c += 1 vv += 1 } p [vv, $c] $k.call if vv < 10 and $c < 10 $ ruby-1.8 -v t.rb ruby 1.8.6 (2007-04-20 patchlevel 5000) [i686-linux] [3, 3] [4, 4] [5, 5] [6, 6] [7, 7] [8, 8] [9, 9] [10, 10] $ ruby-1.9 -v t.rb ruby 1.9.0 (2007-05-29 patchlevel 0) [i686-linux] [3, 3] [3, 4] [3, 5] [3, 6] [3, 7] [3, 8] [3, 9] [3, 10] -- sheepman / TAMURA Takashi sheepman@sheepman.sakura.ne.jp