今回のドラフトは7thのtypoと非正確数のeqv?あたりぐらいだろうと思っているので軽く斜め読み。Chibi-Schemeもこれにあわせてか、0.6.1とバグフィックス版を出してきている。
前回からの変更点
- (eqv? 0.0 -0.0)が処理系が負の0.0を識別するなら#fと明示された
- read-bytevector!の引数順が変更になり、それに伴ってオプショナル引数が4つに増えた
やべ、こんなに変更点がないとは思っていなかった。書くことがないw
とりあえず、宣伝。
0.3.8でドラフト7に対応したんだけど、Chibiのテストが結構こけてたりしてたんだけど、次のリリースでは全て問題なく通る。それにプラスして、Chibiでは(たぶん、まだ)サポートされていないinclude-library-declarationsもサポートされているので、現状ではR7RS Smallをフルサポートしている処理系ということになる。今週末リリースする予定(あくまで予定)。
2 comments:
(eqv? 0.0 -0.0) => #f はMLで主張していた人の言う通りmemoize書く時に嬉しいんじゃないですかね。それ以外での具体的な応用はちょっと思いつかないけれど、(eqv? x y) => #t なのに純粋な関数fについて (f x)と(f y)の結果が異なるってのは確かに気持ち悪いので妥当なんじゃないかと思います。
やっぱりmemoizeですか。
浮動小数点をcaseで使うとかいろいろ考えたんですけど、いまいちこれが明確にされていて嬉しい場所を思いつかなかった割には、MLの議論はびっくりするくらい白熱していたので。
確かに副作用がないのに同値として扱える関数が別の値を返すのは気持ち悪いですね。
Post a Comment