From: EGUCHI Osamu Date: 1999-02-10T01:05:14+09:00 Subject: [ruby-dev:4938] Re: module Precision えぐち@エスアンドイー です。 >>> On Tue, 9 Feb 1999 21:50:28 +0900, keiju@rational.com (石塚圭樹 ) said: keiju> けいじゅ@日本ラショナルソフトウェアです. keiju> keiju> In [ruby-dev :4855 ] the message: "[ruby-dev:4855] Re: module keiju> Precision ", on Feb/09 01:05(JST) EGUCHI Osamu writes: keiju> keiju> >えぐち@エスアンドイー です。 keiju> keiju> >generality (一般性) の事ですね、 keiju> >でも Float と Bignum ではどちらが keiju> >一般性が強いかは悩むところですね。 keiju> >乱暴に言うと keiju> > Float.generality < Bignum。generality keiju> >なのかな? keiju> keiju> 別メイルでも書きましたが逆です. 基本は, 情報量(精度)の少ない方に変換さ keiju> れていきます. 同じ精度(Fixnum/Bignum/Rational)はより表現力のある方(大 keiju> きい集合)に変換されます. Smalltalk の generality は実際は というプリミティブだったと思いますが、あれでユーザー定義の 新規のクラスの一般性も調べられると言うのが今一歩理解できてません。 そのため、論点が噛み合っていないかも知れません。 ruby で 1.0 + 10 ** 999 が Inf を生成してしまうのも Float.generality > Bignum.generality 的な発想からだと思います。 型同士の一般性の比較でなく、値同士の domain の 比較に持って行かないと、みんな Float に吸い込まれてしまい 結局 +/-無限かゼロ、あるいは NaN (!) にまるめられてしまう 様に思います。 えぐち