前田です。

At Tue, 20 Apr 1999 09:37:56 +0900,
Inaba Hiroto <inaba / sdd.tokyo-sc.toshiba.co.jp> wrote:
> うーーーーん、継続をcallした時、ローカル変数へ代入した値も保持され
> ると思っていたら、method内のローカル変数は戻るんですね。procの動的
> ローカル変数と、トップレベルのローカル変数は戻らないのですが。

なぜそうなるかというと、ローカル変数はスタックに割り当てられるの
で、callccでスタックをコピーする時にその時点でのローカル変数の状
態を保存してしまうからです。
逆にブロックローカル変数の方はヒープに割り当てられるためコピーさ
れないので、それ以降の変更が有効になります。

Schemeの仕様に合わせるには、けっこうインタプリタに手を入れる必要
があると思うのですが、undocumented featureのためにそこまでやって
もよいのかなあ...。

-- 
前田 修吾