From: Yukihiro Matsumoto Date: 2008-04-02T22:02:29+09:00 Subject: [ruby-dev:34228] Re: Complex組み込み まつもと ゆきひろです In message "Re: [ruby-dev:34227] Re: Complex組み込み" on Wed, 2 Apr 2008 21:21:33 +0900, Tadayoshi Funaba writes: |> 予見される問題としては |> |> * SmalltalkやPythonと違い、Rubyでは//は空の正規表現と衝突 |> する。 |> |> * /がなにを返すのか(まだ)いまいち明確でない。個人的には |> quoはrdivと同じであると認識していますが、/はFloatである |> べきなのかなあ。 | |そうでしょうね。quo は、1.8 と 1.9 で少し違いますが、意味としては quo |なんだと思います。ruhy としては、そういうのが正しいような気がします。 ちなみに、私の心づもりとしては「quoはもっとも正確に近い値を 返す」というつもりです。だから、1.8だとRationalがあるときに はRationalを返し、ないときにはFloatを返します。1.9ではいつも Rational。それは、ふなばさんのイメージと大きく異なっていませ んか? もっとも、精度の問題がありますから、この方針が良くない場合も あるでしょうね。 気になるのは rational.quo(float) とかで、 (1) 精度が低い方に合わせる (2) より正確なクラスに合わせる のいずれが望ましいかという点です。現在はひとつのメソッドがい ろいろなオブジェクトを返すのはあんまりよろしくないような気が しているので、(2)の方が良いように思っています。しかし、その辺 は実際にRationalやFloatを使う人の意見を聞きたいものです。 まつもと ゆきひろ /:|)