From: Kenta Murata Date: 2011-11-01T09:43:39+09:00 Subject: [ruby-dev:44752] Re: [ruby-trunk - Feature #5521][Open] Numeric#rational?、Numeric#complex?、Numeric#float? の追加 むらたです。 (2011.11.01 04:04 ), Yukihiro Matsumoto wrote: > |別の考えとして、Scheme のような述語に仕様変更する考えもあります。その場 > |合、クラスを見るのではなく、integer? は、1、1.0、Rational(1) のいずれに > |対しても真を返す事になります。 > | > |いずれにしても特定のクラスと一対一対応するものは意図していません。 > > 特定のクラスと一対一対応するのでないのであれば意味があるよう > な気がします。この場合 1.0 に対して integer? が真を返すので > あれば、1.0にかなり近い値、たとえば 1.0 / 3.0 * 3.0 はどうな > んでしょうね。 これは私も気になりました。1.0.float? が真になるなら 1.0.integer? は偽になって欲しいと直感的に考えてしまいます。 Float#rational? はどうなりますか? この方向性で定義される場合、Rational(1).integer? が真になる事について、 異論はありません。その場合は Complex(1, 0).ineger? も真になるものだと考 えていますが、合ってますか? -- Kenta Murata 1D69 ADDE 081C 9CC2 2E54 98C1 CEFE 8AFB 6081 B062