From: matz@... (Yukihiro Matsumoto) Date: 2000-01-08T03:36:40+09:00 Subject: [ruby-dev:8878] Re: [ruby-list:20054] Re: == === case まつもと ゆきひろです In message "[ruby-dev:8849] Re: [ruby-list:20054] Re: == === case" on 00/01/06, "Shigeo Kobayashi" writes: |すいません。よく考えれば、その通りです(赤面)。 |私は「頼みに来ない時」にどうするかを考えていたのですが、 |はっきり言って、説明間違いでした。 なるほど。 |ですので、 |  もし"1.23"==xのような構文で、かつ、"1.23".type!=x.type |  さらに、"1.23"がx.coerceを呼ばなければ、Rubyインター |  プリタが代わりにx.coerceを呼んでから「"1.23"==x.coerced」 |  を実行してくれないかな? |等と、むしのいいことを考えた次第です。 既にお気づきかもしれませんが、Rubyのcoerceというものはある種 「coerce 連合」に所属するクラス群での紳士協定のようなもので す。で、Stringのような「coerce 連合」に所属していないクラス に対しては適用されません。「coerce 連合」に所属していないク ラスに対しても適用できる型変換システムのようなものについては 過去にも話題になったことは無いと思います。 あまりこったものにすると全体のパフォーマンスが落ちますし。 型変換システムとしてはごとけんさんの prec ってのもありますが (標準で組み込まれている)、全然ドキュメントに載ってないのは * まつもとが理解できてない。から説明できない * (上記の理由もあって)他との整合性がこなれていなく(自動変 換と言うわけではないし)ように感じられて、もうちょっと考 えたい というような理由によるものです。ごとけんさん、ごめんね。 # これもruby-mathか? まつもと ゆきひろ /:|)