けいじゅ@日本ラショナルソフトウェアです.

In [ruby-math :00701 ] the message: "[ruby-math:00701] Re: int/int
[Re: compl ", on Apr/17 18:40(JST) Shin-ichiro HARA writes:

>原です。

>>原さんの立場では、有理整数環と有理数体では、"/" の結果は違うわけ
>>ですから、false でなかったらかえって困るのでは?
>>1234567890/7 #=> 176366841
>>Rational(1234567890)/7) #=> Rational(1234567890,7)

>これって、
>
>   1 == Rational(1)
>
>なのに、
>
>   1 / 2 != Rational(1) / 2
>
>なのは変じゃないかってことですよね。
>これには説得力を感じるなあ。

ちなみに, Smalltalkでは

  1 == 1.0 -> false
  1.0 == 1 -> true

になっています. 1.0が誤差を持っていると考えると, 1からみたら, 1.0は違う
だろう? って考えるのはなっとくがいっていました. 

>しかし、Ruby の Integer は、有理数に包含される整数を表してい
>るだけではなくて、ループカウンタや配列のインデックスのような、
>プログラミング上のツールとしての側面もあるわけですよ。それを

うーん. ループカウンタとか配列のインデックスに用いる整数で整除を使う場面
てほとんどないと思いますが? 

それよりも, 普通の数として四則演算とか整除する頻度の方が高いと思いますが?

>数クラスとして辻褄を合わせるために coerce システムがある、と。
>そして、この現状はそんなに悪いものでもない、と思うのです。

えー. つじつまが合わせられないから困ってるんですけど. 

__
..............................石塚 圭樹@日本ラショナルソフトウェア...
----------------------------------->> e-mail: keiju / rational.com <<---