ごとけんです
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