From: Shin-ichiro Hara Date: 1999-04-14T01:57:10+09:00 Subject: [ruby-list:13702] Re: What is callcc? (Re: iterator <-> cursor) 原です。 | callcc { |cont| .... } | |を実行すると、callcc の直前の状態(変数の割り当てとかループ |カウンタとか。オブジェクトの状態ではない。)を記憶して cont |に代入し、.... を実行します。cont の指しているこのオブジェク |トは Continuation クラスのインスタンスであり、これに .call(x) |すると x を callcc の返り値として、先に記憶した状態を復元し、 |callcc の後に実行が移ります。 補足です。.call(x) されずに .... の実行が終了した場合、その最 終評価値が callcc の返り値になります。