正木です。

In [ruby-math:00959]

|原です。
|
|私も最初にテストするときは Integer に定義したりしますが、組み込み
|にするなら Fixnum と Bignum に定義することになるでしょうね。なぜ
|ならメソッド探索順が Fixnum -> Integer, Bignum -> Integer ですし、
|Integer での定義が場合分けの形になっているなら、もともとシステム
|が分けてくれていたものを Integer で集めてからまた分けたことになっ
|てしまいますから。


Fixnum と Bignum の区別は Ruby の内部事情ですから、出来る限り
user に意識させるべきではないと考えます。
私は整数演算の再定義をする際、非常に苦労しました。
Integer に再定義して、それが反映されない理由が分からず悩んだことも
あります。

C 言語の場合、関数が Fixnum と Bignum 共通に使えるように定義されて
いないと、その場合分けに苦労することになります。結局その繁雑さに耐
え切れず rb_funcall を多用することになりますが、そうすると折角 C 
で書く利点があまり生かされません。