From: Tomoaki NISHIYAMA Date: 2011-11-01T07:39:50+09:00 Subject: [ruby-dev:44751] Re: [ruby-trunk - Feature #5521][Open] Numeric#rational?、Numeric#complex?、Numeric#float? の追加 ふなばさん > complex? も同様です。 complex?が偽になるのはどういう場合ですか? real?を作らず、complex?を作る理由は? -- Tomoaki NISHIYAMA Advanced Science Research Center, Kanazawa University, 13-1 Takara-machi, Kanazawa, 920-0934, Japan On 2011/10/31, at 20:50, tadayoshi funaba wrote: > > Issue #5521 has been reported by tadayoshi funaba. > > ---------------------------------------- > Feature #5521: Numeric#rational?、Numeric#complex?、Numeric#float? の追加 > http://redmine.ruby-lang.org/issues/5521 > > Author: tadayoshi funaba > Status: Open > Priority: Normal > Assignee: > Category: core > Target version: 2.0 > > > 今のところ Common Lisp の rationalp などに似た仕様を考えています。 > rational? は Integer や Rational に対しても真になります。float? は組み > 込みに関しては Float だけですが、それ以外の実装についてもあればそれも真 > になります。complex? も同様です。 > > 別の考えとして、Scheme のような述語に仕様変更する考えもあります。その場 > 合、クラスを見るのではなく、integer? は、1、1.0、Rational(1) のいずれに > 対しても真を返す事になります。 > > いずれにしても特定のクラスと一対一対応するものは意図していません。 > > 実際に、complex の実装でも必要になっています。今は仕方がないので胡麻化 > しに近いもので、もうひとつ別の複素数があったり、別の浮動小数点数実装が > あった場合に対応できません。 > > > > -- > http://redmine.ruby-lang.org > >