SRFI-48を追加しました

SRFI-48を追加したのですが、そのテストの過程でR5RSで不思議に思っていた'#'をPetite Chez Schemeが出力するのを目撃しました :)
こうすると見ることができます。

$ petite
Petite Chez Scheme Version 7.4
Copyright (c) 1985-2007 Cadence Research Systems

> (format #t "~5,5f" 1e50)
10000000000000000##################################.#####
> (string->number "10000000000000000##################################.#####")
1e50

'#'に隠されている部分はいったい何なのかを見てみます。

> (inexact->exact 1e50) ;; R6RSなら(exact 1e50)
100000000000000007629769841091887003294964970946560

なぜ10000000000000000までなのでしょう・・・

Ypsilon 0.9.6-trunk/r393 Copyright (c) 2009 Y.Fujita, LittleWing Company Limited.
> (log 10000000000000000 2)
53.1508495181978

53というのはIEEE754倍精度浮動小数点数における2進数での有効桁数ですね。なるほど :)
ちなみにpetiteでも普通に使う分には'#'は画面に出てきません。

$ petite
Petite Chez Scheme Version 7.4
Copyright (c) 1985-2007 Cadence Research Systems

> 100000000000000000000000000000000000000000000000000.00000
1e50
> 100000000000000007629769841091887003294964970946560.0
1e50

なので、今まで目にしなかったのですね。 :(
* R5RSの'#'は R5RS: 6.2.4 Syntax of numerical constants に書かれています。真ん中あたりを注意して見てください :D
* R6RSで'#'は仕様からついに無くなりました。

$ ypsilon
Ypsilon 0.9.6-trunk/r393 Copyright (c) 2009 Y.Fujita, LittleWing Company Limited.
> (import (srfi :48))
> (format "~5,5f" 1e50)
"100000000000000000000000000000000000000000000000000.00000"

イプシロンでは普通にこうなります。:)