From: Tadayoshi Funaba Date: 2008-03-26T21:45:43+09:00 Subject: [ruby-dev:34145] Re: rational.rb, complex.rb and mathn.rb > (1) (-8)**Rational(1,2) は複素数1.0+1.7320508*i > (2) Math.sqrt(-8) は、例外発生 > > でどうでしょうか。(2) の理由は「伝統の維持」です。(1) は、互換性がない > のだけど、多分使っている人は少ないからまあいいか、ということです。 > やっぱり難しいなあ。 やはりちぐはぐな感じがしますね。 ruby では、同じ数値を Rational でも Complex でも表現でき、また、関数形 式、メソッド形式、演算子間で違いがあって、さらに mathn もあって、あちこ ち分断されているように感じます。 この案を採用したとして、 Math.sqrt(Rational(1,4)) #=> Rational(1, 2) Math.sqrt(4) #=> 2 のようなことをしたい場合、どういう対応になるんでしょうね。