From: gotoken@... (GOTO Kentaro) Date: 1999-02-10T07:23:44+09:00 Subject: [ruby-dev:4955] genericity ごとけんです 終ったはなしになんですが In message "[ruby-dev:4933] Re: module Precision" on 99/02/10, 石塚圭樹 writes: >けいじゅ@日本ラショナルソフトウェアです. >> 豊福@パパイヤです。 > >> 私(だけのようですが)は coerce を「演算という >>代数的性質の実現」とは今のところ考えていません。 >>たまたま代数的演算にしか coerce を使っていないだけ >>だし、代数的性質を仮定して coerce を書いている人も >>まだいないと思っています。 > >これは, 昔の新coerceアーキテクチャに関する話題ですね. ですね. てゆーか,ぼくは coerce って Ruby でしか知らないので 上のようなことをいってるんですが,もともと(ってどこ?) そういうモノなんじゃないんですか?? # 英語の意味だけではとても今の Ruby での用法は想像できない >>> prec 自体は問題ありませんが,induced_from のように >>> 初期値として引数をちょうど1個だけ必ず要求する new の >>> ようなモノがないことが問題です. >>> >>> Integer() とか Float() とかはありますが,構文的制約から >>> prec(klass) を klass(self) では定義できないことが >>> induced_from を考えた一番の理由です. >> >> 「初期値として引数をちょうど1個だけ必ず要求する >>new のようなモノが必要」というところからわかりません。 この部分は,多分に僕の先入観が影響してます. まずさきに,あるクラスに「この値を表現したモノをくれ」と 尋ねたいという先入観がありまして… >あ. ああっ!! > > class Integer > def prec(other) > x,y = other.coerce(self) > x > end > end > > def Float.coerce(other) > case other > when Integer > return other.to_f, self > : > end > end > >見たく定義すれば? ってことですか? > >>「prec を coerce を使ってここまで書いてたらこういう >>値が必要になって行きづまった」のような具体例がない >>でしょうか。 > >> prec から呼ばれたときの coerce は所望したクラスの >>モノを返すように作ってやればよいのではと思うのですが。 >>その難しさを私が理解していないところが問題なのかな。 > >うーん. 本当にそう主張しているんですね(^^;;; > ># きっと, こんなことは, 豊福さんしか気がつかないに違いない. > >確かに, 数値のインスタンスのみに適用するのではなく, 上記のようにクラス >にも適用することにすれば, precもcoerceを用いて実現できると思います. そ,そうです.こんなことは思いもよりませんでした!! 考えがいたらないのにつきあわせて申し訳ない. # もっと早くひとこと言ってくれれば (^^;;; >ただし, precから算術演算で必要なcoerce様機能も実現できますので, どっち >がよりプリミティブな機能かという問題は別ですが... > ># でも, coerceを用いるという案も結構面白いなと思ったりして(^^;;; ですねー. うむ.もう少し考え直してみます. -- gotoken