ごとけんです

In message "[ruby-list:9218] Re: induced_from"
    on 98/08/20, 石塚圭樹 <keiju / rational.com> writes:

>けいじゅ@日本ラショナルソフトウェアです.

>ただ, 実はちょっと気になっているところがあって.
>
>新規クラスNumXを作成した場合, 作るべきメソッドが

>  def prec(klass)
>  def NumX.reduced_from(val)

>の2つメソッド作る必要が出ますよね. coerceの時は1つですんでいたのでちょっ
>とって気がしているんです. けど... うまい案はなさそうですよね...

確かに。これは仕方無いと思います。
# induced_from は new がやってくれると良いのかなぁ

>この辺りですが. 数学的にはNumericっていうとごとけんさんの言うとおり
>だとおもうんです. でも, Rubyを使っていて実際にはRealからはみ出すような
>数って滅多に使わないと思うんですよ. で, RubyのNumericというのはReal的
>な振舞いを行なうものであると見て, それ以外のクラスはそのメソッドを削除
>したりして対応する方が良いかなって思っています.
>
># 鳥クラス(Numeric)の中のペンギンクラス(Complex)見たいな考え方ですね.

うーん…了解します。
まぁぶっちゃけたハナシ、 Complex が既に用意されて
いるというだけでもとてもありがたいですから ^^;;;
ただ、Numeric の upto/downto, divmod と chr は
Integer に限らないとまずいとおもいます。

>>module Precision

>>  def Integer.induced_from(n); n.to_i; end
>>  def Fixnum.induced_from(n); n.to_i; end
>>  def Bignum.induced_from(n); n.to_i; end
>>  def Float.induced_from(n); n.to_f; end
>>end
>
># Fixnu.induced_from, Bugnum.induced_fromは必要ないと思いますが??

はい。そうですね。

>動作としては全く同じになりますね. こちらの方がエレガントな実装だと思い
>ます(^^;;; 先ほどもいったようにRubyに標準として組み込んで欲しいので, 
>実際に実装する人に任せますです.(^^;;;

同じく ^^;;;

-- gotoken