Shin-ichiro HARA さんは書きました:
> 今までの Complex は、complex.rb にほぼ残して、たとえば Rational 成分
> の複素数を使いたい人は、Complex を使い、科学技術計算をしたい人は、こ
> の (2) を使え……で、八方丸く収まるのではないでしょうか。

共存できるとよいことですが、仕様とかでもめそうかも。
クラス関係とか、相互に変換する規則はどうするか、とか。

> (2) には新しい名前が必要になりますね。仮に ComplexFloat とすると、クラ
> ス関係は、あたらしい InexactNum(仮称)を導入して、
> 
>   Numeric - InexactNum - Float
>                        - ComplexFloat
> 
> とするか、RealFloat(仮称)を導入して
> 
>   Numeric - Float - RealFloat
>                   - ComplexFloat
> 
> とするか。いずれにしても大きな変更になるけど。

クラス関係は難しいところです。包含関係でいえば、

Numeric
 |- Complex - ComplexFloat(仮)
     |- Real - Float
        |- Rational
           |- Integer -- Fixnum
                      |- Bignum

なども考えられますが、これとクラス関係とは必ずしも同じ話ではないかも
しれません。

> で、Math.sqrt(-8) は、ComplexFloat(仮称)を返せばよい、と。
> 
> Math.sqrt がデフォルトで、Integer を返したり Float を返したりするのは、
> 抵抗がある(mathn の下では別)のですが、Float を返したり ComplexFloat(仮
> 称)を返したりするのは、良い気がします。

同意ですが、Pythonがcmathに分けている理由で、

http://www.python.jp/doc/current/lib/module-cmath.html より:
> 機能を二つのモジュールに分けているのは、複素数に興味がなかったり、もし
> かすると複素数とは何かすら知らないようなユーザがいるからです。そういっ
> た人たちはむしろ、math.sqrt(-1) が複素数を返すよりも例外を送出してほし
> いと考えます。

というのも一理あるなあと。

田中昌宏