From: "URABE Shyouhei aka. mput" Date: 2005-12-02T03:03:32+09:00 Subject: [ruby-dev:27924] Re: Numeric と Complex 卜部です。 Yukihiro Matsumoto wrote: >ただ、「数の部 >分集合」と言ってるときの「数」は、私の認識では実装を意識した >「数の種別」なのに、「数学上の数システム」に厳密に従わなけれ >ばならないと想起させてしまってるのであれば、それは不幸の原因 >かもしれません。そういうのは別のクラス体系を作るか、別の言語 >(Mathematicaとか?)でやってください。 > > 実際にComplex#<=>がへんな定義で困ってるわけですよね? 私が個人的に想定している現実の不幸はこれです。 んで、その不幸は、集合論的型システムとRubyのクラスシステムがうまくイン ターフェースしてない点に由来するのだろうという考察が[ruby- dev:27918]で す。べつに、「だから集合論的型システムを採用しろ」とまでは言ってませんよ。 # 前にも言った気がしますが実現可能なことからちょっとづつ考えるのが好きで すから。 >|>私にとっては「実数とは複素数の虚部がゼロのものだからComplex >|>のサブクラスにすべきである」と同じくらい違和感があります。 >| >|私にとっては「同じくらい自然に思える」あるいは「同じくらい説得力のある」 >|意見に聞こえますよ。キモいっていう以外にどんな不都合がありますか? > >複素数の場合は、実装として効率が悪いじゃないですか。 > [ruby-dev:27914] >|と書くと、比較的高速にchでの分岐を与えてくれているというイメー >|ジがあるので、そこでsuccが何度も呼ばれているというのは、気持 >|ち悪い気がします。 > >それは実装のことなんで気にしない、と。 > > えーと? あと複素数の部分集合だからといってかならずしも最適化した実装が禁止されて るわけじゃないですよね? # Ad-hoc polymorphism があるんだし >で、Real >については、コンピュータ言語ではRealは伝統的に浮動小数点を表 >現する単語として用いられてきたので整数のスーパークラスの名前 >にはふさわしくないというだけのことです。それを「キモい」と表 >現するなら、それ以外の理由はありませんが「名前重要」ですから。 > > 名前が気に喰わない、というだけで案としては反対ではないのですか?