ごとけんです

なんか僕がネタ(?)みたいなので出て来ました ^^;;;

In message "[ruby-math:00416] Re: Numeric.new"
    on 01/03/23, ARIMA Yasuhiro <fit0298 / fitec.co.jp> writes:
>Shin-ichiro HARA <sinara / blade.nagaokaut.ac.jp> wrote
>
>| 皆さんのご意見は?

ぼくは何らかの零は必要だと考えますし、ruby-talkでも同様の意
見は複数ありました。具体的には、一意性を期待するために定数で
あることが望ましいでしょう。しかし、未定義のモノを参照する可
能性もあるので、ユーザには定数である零を返すクラスメソッド
zeroも提供したほうが良いと思います。これは、mixinで

  self.type::ZERO

などと書かなくてすむようにするためです。また、zeroのクラスは、
可能な限り具体的なモノにすべきだと思います。具体的には

  Float::zero.is_a? Float
  Fixnum::zero.equal? Integer::zero

を期待します。

>n + Numeric::Zero == Numeric::Zero + n  #=> true
>n * Numeric::Unit == Numeric::Unit * n  #=> true
>
>というようなことでしょうか?

というようなことです。

ただUnitは実数というよりは群論的な要素なので、必ずしも必要で
はないでしょう。実用上はむしろsuccやpredのために必要なことが
多いかと思います。

-- Gotoken