From: matz@... (Yukihiro Matsumoto) Date: 2003-07-25T12:49:25+09:00 Subject: [ruby-dev:20889] Re: 0**(-1) with rational まつもと ゆきひろです In message "[ruby-dev:20878] Re: 0**(-1) with rational" on 03/07/25, 石塚圭樹 writes: |数値系のクラスNum1があって, coerceメカニズムを採用している |Num1op(other)が定義されている時に, | |class Num | alias op2 op |end | |としたときに, | | num.op2(other) | |して coerceされると, num'.op2(other') が呼ばれますよね? | |これって仕様として相応しいんでしょうか? num1'.op(other')が呼ばれるべき |だと思うのですが? これはバグです。直します。 |>> % ruby -rrational -e 'p 0**(-1)' |>> Rational(1, 0) |>> % ruby -e 'p 0**(-1)' |>> Infinity | |たぶん意図してなかったと思います. バグです. どう直すべきですか。1.8.0のリリースが近いので暫定的でも修正 したいです。石塚さんが忙しいなら方針(or あるべき状態)だけ出 してくだされば、だれかの協力をお願いできるのではないかと思い ます。 |そうなんですよね. この件に関しては, いくらなんでもやりすぎかなと思い, |デフォルトでは, このような動作はしない方が良いかなと思っていたようで, |その方向で直そうと思っていたみたいです. これも同様。 まつもと ゆきひろ /:|)