児玉 です.

From: toyofuku / juice.or.jp
Subject: [ruby-math:00370] Re: one/zero for algebraic class
Date: Fri, 13 Oct 2000 20:20:28 +0900
Message-ID: <200010131120.UAA06604 / fermat.mrisys.co.jp>

>   豊福です。
....
>   R(0) * x -> R(0)
>   R(0) + x -> x
>   R(1) * x -> x
>   R(n) == n # ただしオブジェクトとしては異なる
>   R(m) + R(n) -> R(m+n)
>   R(m) * R(n) -> R(m*n)
> (ここで x は任意のオブジェクト。m,n は整数)
> 
> となるようにクラス R(とインスタンス R(0),R(1))を作っておいて
....
> ・具体的な係数環クラスが決まって時点で R(n) をそのクラスのイン
>   スタンスに変換する。
> ・係数環となるクラスは R との演算を定義しておかなければならない。

Zp=Z/pZ とか ( R(n) を [n] と同一視する) とか,
N次正方行列がなす環 ( R(n) を 対角成分 n の対角行列と同一視する) とか,
うまくできそう.

もしかして, 上の R(n) を Integer の n と読替えても可?
それなら, 抽象的な R との演算を各環で定義する代わりに,
Integer との演算を上の式に沿って定義しておくという,
わりとおとなしい方針で何とかなる.

でも, R(n) のまま残った状態での to_str の挙動が気持悪いかもね.

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