児玉 です.

多項式クラスを見直していて
環/体のクラスで 1元, 0元 を与えられると好ましいと思えて来ました.
環/体 のクラス(仮に class Ring とする)で
Ring::one や Ring::zero があると良いわけです.
(Rational::one とか Complex::zero とか)

代数的クラス(仮に class Ring とする)の実装で
以下の様な取決めは現実的でしょうか?
(0) 環/体 の実装は少なくとも以下の (1) を満たす.
(1) 四則演算では 1, 0 は 1元, 0元 に対応する.
(2) Ring.new(1), Ring.new(0) は 1元, 0元 に対応する.
(3) 環/体 のクラス Ring は1元, 0元 として one, zero を
    constant 又は class method として持つ.
    例. 行列環だと 単位行列, 零行列
    注. Ring::one のように参照するなら, 
        constant でも method でも同じだよね?

有理数,実数,複素数,四元数,整数係数多項式 等ではあまり問題は無いでしょうが,
# っていうか, 既に(1) は満たしているはず.
有限体, 行列環 等では問題かも?

ruby で係数環クラスをパラメ−タとして持つような
多項式クラスはできない(ですよね?)ので,
# class Polynomial{Ring} みたいな ....
# GNU/Sather でいう parameterized class みたいな感じ.
多項式クラス class Polynomial 自体は
係数環が何かは知らないわけで, 
多項式クラス側からこれらone,zeroを使うのも困難な気がします.
そこで, 四則演算のときに, 整数の 1, 0 を 
環の 1元, 0元 と同一視するのが現実的なようです.

-- 
K.Kodama(kodama / kobe-kosen.ac.jp)