作者: 機械伯爵
日時: 2002/3/26(23:26)
 ども、Rubyはぜんぜん使ったことない(というか使えない)機械です。

> >  A + B
> >  を定義しようとすると、かならずBの側で定義する必要があるよ
> > うですね。
> 
>  普通 A のほうに定義すると思うんですが。

 完璧に本を読み間違えました。
 おっしゃるとおり、Aの方ですな。
 
> >  よって、Bが組み込みオブジェクトだと面倒らしく、そのために
> > 特殊なルールがあるみたいですね。
> 
>  これは何の話でしょう? coerce かな?

 coerceですね。

 あまり新しいルールを覚えて混乱したくなかったので、詳しいところ
は読みたくなかったのですが・・・

 う〜〜〜予想以上にややこしいっす(coerceに対するコメント、終り)
 
>  それよりも、もっと面倒なのは暗黙の型変換のせいじゃないでしょうか?

 C++はクラスインスタンスについては非常にシビアなので、明示的なキャスト
がなければスーパークラス型にさえなりません。

 よって、演算子に関しても「実用にならないくらい」明瞭(笑)だと、私は思
いますけどいかがでしょう?

※ここらへん、Javaはかなり柔軟に改良されてますね。
 
>  でも逆にいうと、演算子の可換性を宣言することができれば、
> 純粋オブジェクト指向+演算子をちゃんとミックスした言語が
> 作れそうな気もします。深く考えていませんが。

 オブジェクト指向主義も、文脈を明瞭にして「理解しやすさ」をもとめたもの
だと私は思っています。

 とすると、演算子の可換性(・・・う〜ん、この言葉、初耳です。勉強が足り
ないな・・・)を宣言してたとすると、果たしてそれが「わかりやすい」文脈
になるかどうかは、私はちょっと疑問ですけどねぇ・・・

 ま、言語は設計して実際に使ってみないとわかりませんけど、設計の方向性に
ついては真剣に考える必要があると思います。

 ・・・んでも、ことプログラム言語においては「とりあえず」で作ったものが
結構定着するのが事実なんですけどね・・・

   機械伯爵