[ruby-dev:24295] Re: Array#sort! with calcc dumps core

From: Tanaka Akira <akr@...17n.org>
Date: 2004-09-20 03:00:50 UTC
List: ruby-dev #24295
In article <1095637322.024121.13298.nullmailer@x31.priv.netlab.jp>,
  Yukihiro Matsumoto <matz@ruby-lang.org> writes:

> ますから。2についても考えてみます。dynamic-windってどういう
> 動作だっけ。

とりあえず google では Gauche のドキュメントが引っかかりますね。
http://www.kt.rim.or.jp/~kbk/guile/guile_23.html

R5RS なら次の所にあります。
http://www.schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-9.html

まぁ、導入するには予約語名が問題なんですかね。[ruby-dev:14494]

それはそれとして思い出しましたが、現在の ensure は callcc で脱出した時
には起動しないので、これを dynamic-wind の after に対応させるなら変更
しないといけないですね。

% ruby -e '
callcc {|k|
  begin
    k.call
  ensure
    p 1
  end
}
p 2
'
2

あと、今回は qsort に再度入られることを防ぎたいわけですが、それをどう
指定するかというのも問題です。qsort の外側の継続をとっておいてそれを
before から呼ぶか、例外を使うか、あるいはもっと他の方法を考えるか。
そして例外を使うなら、その例外はどこで rescue できるのかを考えないとい
けないんだけど、Scheme には例外がないから参考には出来なくて... いや、
Gauche には例外があるか。
-- 
[田中 哲][たなか あきら][Tanaka Akira]

In This Thread