豊福です。

るびきちさん
> > > ということはmatrix.rbとかを使うときには、Matrix#coerce_revを
> > > 定義する必要があるということですね。
> > おっとと、そっちとの連係まで考えていませぇん。
> まあ、all rubyじゃ実用上使いものになりませんから(^^;;
> 
> > > そういえばどこかの議論で演算子つきのcoerceがあったような。
> > 昔のMLですね(たぶん)。

  ruby-list -> ruby-dev -> ruby-math と流れついてきました。
[ruby-math:00005] に coerce の話の私なりのまとめを書きました。

> 結局なんで採用されなかったんだろう。

  従来との互換性の問題と当時 coerce を必要とするような新しい
クラスが作られていない時期で実用上の需要のないまま単なるお話
として議論されそのうち立ち消えという感じだったと思います。

> > > 「知って」いるものが増えてくるとwhenの数が増えてヤな感じ。
> > 演算子のふるまいを「きちんと」しようとすると、しょうがない気が。
> > Matrixを知っているScalarに変換するというのも、結局whenを増やすの
> > と同じことのような気がします(比較はしてませんけど)。
> やっぱり一つのメソッドには一つのことしか書きたくありませんから。
> Rubyの柔軟性でなんとかうまい方法がありそうな気がしますが。

  うーん、演算(A op B)の類似性は A(と op)側だけでは決ま
らないし B(と op)側だけでも決まらないので類似点をクラス単位
で抽出しにくいですね。なんかうまい方法ないかな。
---
                                豊福
                                toyofuku / juice.or.jp