> > 特定のクラスと一対一対応するのでないのであれば意味があるよう
> > な気がします。この場合 1.0 に対して integer? が真を返すので
> > あれば、1.0にかなり近い値、たとえば 1.0 / 3.0 * 3.0 はどうな
> > んでしょうね。
> 
> これは私も気になりました。1.0.float? が真になるなら
> 1.0.integer? は偽になって欲しいと直感的に考えてしまいます。
> Float#rational? はどうなりますか?

整数は x == x.round という判断でしょう。Scheme 式だと float も
rational でしょう。

> この方向性で定義される場合、Rational(1).integer? が真になる事について、
> 異論はありません。その場合は Complex(1, 0).ineger? も真になるものだと考
> えていますが、合ってますか?

はい。