From: Tadayoshi Funaba Date: 2008-02-20T21:06:54+09:00 Subject: [ruby-dev:33876] Re: rational, complex and mathn > ふなばさんは、「mathn.rbはデフォルトでrequire派」ですよね。私は > 「mathn.rbは基本的にrequireしない派」なんで、ちょっと感覚が違うんですね。 mathn が目指しているもののほうが統一がとれてると思いますが、mathn 派で もないと思います。 > 「1+0iは整数なので、Integer(Fixnum)」だというのは、根拠が弱いと思う。な > ぜなら、1+0iは整数でもあるけど別のものでもある。たとえば自然数とかまた > 別の数体系とか。ある演算の結果をそれを含むもっとも小さい体系(クラス)に > 持っていくという方針は、徹底できないのではないか。 話がかなりズレていると思います。これは数学の議論ではないからです。改め ていうまでもなく、そういうことをいうなら、Rational(1,1) が Integer を 返す根拠もありません。 > ということでした。私は、どちらかというとRationalのままがいいかなという > 程度で、皆さんがIntegerが良いというなら、それでも構わないかなあという > 感じです。 Rational のままというのは、在り得ないと思います。new だから適用外とい うのは理解できません。すべて適用されるか、されないか、どちらかしないな い、と思います。 どうしても納得できないなら、数値クラスのすべてのコンストラクタを排除す るしかありません。Complex.polar なども同じです。 もし Rational のままとして、Rational.new(1) + 0 も Rational のままなの でしょうか。。Rationalnew(1,2) * 2 はどうすべきですか。 まずは、Complex.polar をどう処すべきか訊ねたいのですが。