From: Shigeo Kobayashi Date: 2000-01-08T18:35:47+09:00 Subject: [ruby-dev:8881] Re: [ruby-list:20054] Re: == === case 小林です。 ----- Original Message ----- 送信者 : Yukihiro Matsumoto 件名 : [ruby-dev:8878] Re: [ruby-list:20054] Re: == === case > まつもと ゆきひろです いつも、解説ありがとうございます。 > > 既にお気づきかもしれませんが、Rubyのcoerceというものはある種 > 「coerce 連合」に所属するクラス群での紳士協定のようなもので > す。で、Stringのような「coerce 連合」に所属していないクラス > に対しては適用されません。 はい、これについては以前 ごとけん さんに説明していただきまし た。その時は、勉強中のこともあり(今もそうですが)「そういうもの」 と一応理解してとにかく先に進むことを優先させました。 ただ、自分で拡張ライブラリを作成したりしているうちに、再度気に なって来た次第です。 >「coerce 連合」に所属していないク > ラスに対しても適用できる型変換システムのようなものについては > 過去にも話題になったことは無いと思います。 > 新規クラスや、継承したクラスとの型変換は未来を予想するものの ようで難しい気がします。だからこそ、すべてのクラス(少なくてもビ ルトインクラスなら)でcoerceは必須であると協定を結べないもので しょうか? a op b 、で b がわからない a は b.coerce を呼ばなければなら ない。 呼ばれた b は a が分からなければそこまで... # 私は、皆が coerce をサポートするだけで幸せになれるような # 気がしてきました。 激論の末に「coerce 連合」なるものができたものと推察(過去ロ グを探したのですが...)しますので、議論の蒸し返しなら、参 照ポインターを知らせていただければ、そちらを見ます。 > あまりこったものにすると全体のパフォーマンスが落ちますし。 > 「こったもの」ではなく「柔軟なもの」といえばどうでしょうか? 私には、今でも「Rubyは想像を超えるほど柔軟なもの」です。 変数に型の制限が無いように、演算にも制限が無いようにでき ないものでしょうか? もちろん、「演算を実行する(実行しようとする)」と、「演算できる」 ことは別物です。私は「実行しようとする」アクションはあってもい いなと考えています。 > 型変換システムとしてはごとけんさんの prec ってのもありますが どんなのかな? 小林 茂雄 E-Mail: shigeo@tinyforest.gr.jp Home Page: http://www.tinyforest.gr.jp