From: Tadayoshi Funaba Date: 2008-09-26T20:21:04+09:00 Subject: [ruby-dev:36605] Re: {Complex,Rational}::Unify > これらのメソッドを呼び出すのではなく, 再定義することによって振る舞いを > 変えようと思ったわけです. ようするに、ruby から呼べるというより、むしろ Complex/Rational から ruby の定義を呼べ、ということですよね。 > 公開と言っても, publicにする必要はなくprivateでかまいません. それでも > NGですか? Ruby的にはprivateであれば, それは内部で使うものということに > なるので, それほど問題ないと思いますが? NG でしょう。正直いって最悪の部類かも。 > 将来的に四則演算がmathn的になることが予測され, そうなったときには今あ > るコードを元に戻すだけで済むだけなのに, (このような対応をしていただけ > ないなら, ) mathn.rb 側で, Rational/Complexを返す可能性のある演算子, > メソッドをすべて再定義しなくてはならなくなるのは, 少々面倒というか2度 > 手間と言うか... と思ったわけです. 石塚さんから見て「だけ」っていうのはそうなのかもしれませんが、可能であ るならば、僕からすれば少々面倒でも mathn で再定義する「だけ」って思って しまいます。これは mathn がやるべき事なので。 まったくの内部事情で用意されたものついて、Complex/Rational 内部での利用 も含めて、すべて VM 経由で間接呼び出ししなくてはならなくなります。内部 の都合で簡単に変更もできなくなりますし、これは一体化ではないですか。 mathn は結局ハックだと思いますが、そのために予め裏口を開けておけ、って 事だと思います。実際のところ、石塚さんが提案している再定義は、まわりく どいだけで準備はこっちでやることになるわけですから、実質、mathn はスィッ チを押すだけといっていいと思います。 なにがなんでも mathn 側では対処できないというのであれば、もう少しましと 思える考えもありますが、mathn でなんとかできるなら可能な限りそうすべき だと思います。凍結時刻は過ぎてしまいましたが、よろしくお願いします。