From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?=) Date: 2003-07-25T04:49:04+09:00 Subject: [ruby-dev:20877] Re: complex.rb けいじゅ@いしつかです. In [ruby-dev:20805] the message: "[ruby-dev:20805] Re: complex.rb", on Jul/23 11:04(JST) Masahiro TANAKA writes: >> >|# でも, こんな修正が必要になるのも ** が coerceメカニズムを導入してい >> >|# ないからではないかと... > >えーと、** は coerce を使っているのではないんでしょうか? >Fixnum#** を complex.rb で再定義しなくても、 > 2**Complex(2) => Complex(4.0, 0.0) >となります。それとももっと別の話ですか? 私の勘違いでした. 忘れてください(^^;;; >> Complexの場合は, 実数の世界だけだとエラーになるような演算 >> (ex. -1**(1/2))が複素数の世界ではエラーにならないので, 値域を拡張して >> います. つまり, 演算そのものの再定義が必要なので, だめですね... >むかし、complex.rb で Float#** を再定義して、 > (-2)**0.5 #=> Complex(8.659560562e-17, 1.414213562) >とするように提案したんですが、石塚さんに却下されました。^^; あー. なるほど, そのときは意図を理解していなかったかも知れません. それ に, 現Complexでは, (-1.0)**0.5 とかも計算できないんですね... もうちょっと, 考えた方がいいのかなぁ... >とりあえず再定義しなくても大きな問題はないので、 >安定版では**の再定義は削除してもよいと思うんですが、いかがでしょうか。 うーん... __ ---------------------------------------------------->> 石塚 圭樹 <<--- ---------------------------------->> e-mail: keiju@ishitsuka.com <<---