From: gotoken@... (GOTO Kentaro) Date: 1998-08-20T18:20:35+09:00 Subject: [ruby-list:9231] Re: induced_from ごとけんです In message "[ruby-list:9218] Re: induced_from" on 98/08/20, 石塚圭樹 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