いけがみです.

ruby 1.6.2 (2000-12-25) [alphaev56-osf4.0d] で,
0 ** 0 が 1 を返すのが不思議です.

どうして例外が返りませんか.

ZeroDivisionError = (0**i)/(0**i) = 0 ** (i-i) = 0 ** 0 = 1
は僕には奇妙に映ります.

(a / b) ** i = a ** i / b ** i # (a, b, i に何が入るかは動的に決まる)
という計算をするとき,評価の順序(方法)で振舞いが異なるのは変です.

多項式や有理式を実装するときにひっかかるような気がするのですが.
例外を返すべきだという具体例が思い付かないので説得力がないです.

0 ** 0 == 1 であるべき理由があるなら,そちらを教えてください.
--
池上 大介
Daisuke IKEGAMI <daisu-ik / is.aist-nara.ac.jp>
奈良先端科学技術大学院大学 情報科学研究科
情報処理学専攻 情報基礎学講座 関研究室