頭がモールディな機械伯爵です。
> Python にもあるみたいです。(機能は違うかも知れない…)
ないない(汗)
Pythonには、組み込みフックメソッドとして、__add__と__radd__
のようなペアがあるだけです。
つまり、class Aで__add__を実装すると、A+Xの処理の仕方(ふるまい)
が定義でき、__radd__を実装すると、X+Aのふるまいが定義できるだけです。
Rubyと異なり、逆も定義できるので、非常に分かりやすいけど、反面、
どう見てもスマートじゃないですわな(当然、XがAの中の定義と矛盾すれ
ばエラーを発生します)。
> 例がないと、Python の演算定義が簡単で Ruby のが難しいと
> 納得できないのですが…。(それほど大差ないのではと思っていました)
それに対し、Rubyは暗示的キャストを再帰的に行っているような感じです
から、エラーはPython式より少ないですけど、一体どこに落ちつくのか、
コーディングしてるときにわからないのが、ちょっと気になります。
振る舞いのルールが複雑に見えるのは、私が多分初歩のアルゴリズムの
セオリーを知らないからだと思いますけどね・・・それにしてもなぁ・・・
機械伯爵