ふなばです。

> すいません、rationalize というのを知らないのですが、
> これは何を求める関数なのでしょう?

  (rational 0.3d0) => 5404319552844595/18014398509481984
  (rationalize 0.3d0) => 3/10

という違いです。

scheme の rationalize は

  (rationalize (inexact->exact 0.3) 1/100) => 3/10
  (rationalize (inexact->exact 0.3) 1/10) => 1/3
  (rationalize (inexact->exact 0.3) 0/1) => 5404319552844595/18014398509481984

haskell だとこんなのがあるみたいです。

  approxRational 0.3 0.01 => 3 % 10
  approxRational 0.3 0.1 => 1 % 3
  approxRational 0.3 0 => 5404319552844595 % 18014398509481984