正木です。

In message [ruby-math:00523] Re: 5/2 == 2 or 2.5 に
    on 05/08/2001    Shin-ichiro HARA <sinara / blade.nagaokaut.ac.jp> writes:


|で、有理数体で代表される体は、整除による剰余が常に 0 になる特
|殊なユークリッド整域であると捉える事ができます。そういう意味で
|は、Rational における 5 / 2 == 5/2 は、Integer における 5 / 2 
|== 2 の自然な拡張、というか、特殊化と言えるわけです。

有理数体は Euclid 整域にはならないと思いますが。


|[ユークリッド整域の例]
|(3) 実数部分 x と虚数部分 y が整数である複素数全体。
|     N(x + yi) = Sqrt(x**2+y**2)
|(4) 有理数。N(x) = |x|

(3) の Sqrt は不要。
(4) の N(x) は整数になっていません。


|特に有理数体は整数環からつくった「商体」と呼ばれるもので、これ
|は割り切れないものを無理矢理割り切れたと考えた、不自然な人工物
|だと言えなくもない。つまり 5 / 2 == 2 の方が先にあって、5分の2
|というのは、人間が屁理屈をつけて勝手に作った想像上の数である、

a/b を a を b で割った結果だと思うから不自然なので、整数 a,b を
使って別のものを表現していると思ったら如何でしょう。
長さのような連続量はそれ自体を数値化する方法はないので、基準量と
の比で表現しようというのは極く自然な発想です。最初は自然数しかな
いわけですから、とりあえず自然数の比で表される場合に限定しようと
いうのも当然のことです。
(連続量 x,y に対して連続量 z と自然数 n,m が存在して
x=n*z
y=m*z
となるとき
x/y=n/m)
(物理的連続量を考えているのでこれは数学内部での話ではありません)
rational number の起源について不自然な所は全くないと思います。
勿論本当は連続量を表すのは実数ですが、実数体も有理数体がなければ
構成できないわけですから。

不自然と思うかどうかは人それぞれですから置いておくとして問題は、
a.div b
で済むところを、無用の混乱を引き起こす危険を敢えて冒してまで
a/b
と書く必要があるのかどうかということです。


|というわけです。実際、コンピュータ上の実装も難しいし。

FORTRAN に Complex はあるのに Rational がないのはどうしてだろう
と思っていましたが、そんなに難しいですか?

ついでに数学史に詳しい人に一寸質問があります。
rational number の rational の語源であるラテン語の ratio および対応する
ギリシャ語の logos には通常の意味のほかに、「比」「比例」「相似」の意味が
あり、(例えば英語の ratio,analogue 等) rational number は整数の比で表わされる
数の意味で、これを有理数と訳したのは誤訳だと思っているのですが、英語の 
native の人はこの場合の rational の意味として ratio と reason の内どちらを
意識するものでしょうか? もし rational に ratio の意味が残っていないとする
と、英語になった時点で誤訳だったのかもしれません。
上に書いたことは、そうに違いないと思っているだけで文献的根拠はないので
もし間違っていたら指摘してください。

最後に訂正を一つ
前の mail での
  def /(y)
は mathn.rb のもので充分でした。Unify = true というのを見落としていました。