豊福@パパイヤです。 > 「スタックの深い方へ継続するときはジャンプ前のスタックポインタ > からジャンプ後のスタックポインタまでの差分分のスタックだけを > 復活して継続する。上の例では (0..2) の eachメソッドのスコープ > に関するスタック(ループカウンタがここに入る)だけが復活した > ので、ループカウンタの値だけが callcc時の値(つまりループの > 1回目)に戻った。」 > と想像したのですがあってるでしょうか。 これの答はわからないままですが、これがあってるにしろ、あって ないにしろ次のようなときスタックがどうなるかもよくわかりません。 def foo() x = 1; foo1() x = 2; foo2() end def foo1(); y = 10; foo11(); end def foo11(); z = 20; callcc { |$cont| }; end def foo2(); $cont.call; end $cont.call した直後の x, y, z の値はどうなりますか。 2,10,20 でしょうか。 --- 豊福@パパイヤ unbound / papaya.juice.or.jp toyofuku / juice.or.jp