原です。

>正木です。
>
>In [ruby-math:00959]
>
>|原です。
>|
>|私も最初にテストするときは Integer に定義したりしますが、組み込み
>|にするなら Fixnum と Bignum に定義することになるでしょうね。なぜ
>|ならメソッド探索順が Fixnum -> Integer, Bignum -> Integer ですし、
>|Integer での定義が場合分けの形になっているなら、もともとシステム
>|が分けてくれていたものを Integer で集めてからまた分けたことになっ
>|てしまいますから。
>
>
>Fixnum と Bignum の区別は Ruby の内部事情ですから、出来る限り
>user に意識させるべきではないと考えます。

同意します。変ですねえ。どこから意見が分かれているのでしょう。(^^;

>私は整数演算の再定義をする際、非常に苦労しました。
>Integer に再定義して、それが反映されない理由が分からず悩んだことも
>あります。

今は組み込みにする話をしているのでから、数値関係の階層はすべて
熟知していると仮定すべき(実際にそうでなくても)でしょう。組み
込みのメソッドを書く人はユーザーではありませんよね。

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

rb_funcall ばかりをしていたら C で書く意味がないのは確かで、私はむし
ろ Fixnum と Bignum とで分けて実装した方が rb_funcall は減る気がしま
す。

Integer が Fixnum と Bignum に分かれているのは、色んな理由があると思
いますが、とにかく分かれている現状を前提とするなら、分けて実装するの
はあたりまえだと思うんだけどな。