class precedence list

http://gauche.sourceforge.jp/doc/gauche-refj_141.html

勉強中。余計なことに手を出してしまった気がする。

Gauche ではデフォルトで C3 線形化と呼ばれているアルゴリズムを使います。このアルゴリズムは局所的な順位、単調性、拡張順位グラフと整合性のとれたものです。ここでは詳細に立ち入りませんが、一般的なルールとして、 CPL 中のスーパークラスの順序は、つねにそのクラスの直接スーパークラスの順序、それぞれのスーパークラスCPL の順序、および、各スーパークラスの直接スーパークラスの順序、などと整合性をもちます。正確な説明についてはDylanを参照してください。

ああっ。詳細に立ち入ってくれていない><
ぼ、ぼくも詳細に立ち入るのやめようかな。
それぞれのCPLスーパークラスを指定する順序やスーパークラス達のCPLと同じ順になっている(「片方でAがBより先にあるのに別のではBがAより先にある」ということがおこらない)ってことだけ解説すればいいかなぁ。

Pythonの新しいクラスの継承がC3線形化なのですけど、どう説明すればいいかなぁとか。

単純に「昔は深さ優先だったのが幅優先になっただけ」という理解は間違いだと言うことには言及すべきだろうしなぁ。

やっぱり説明しないわけにはいかない。ついつい「筆者の理解が正しければ」って書きたくなってしまうが、基本的に全ての言及は間違っている可能性があるわけだから無意味だよな。ここに書いておいて識者から「それは違う」とつっこまれたら修正することにしよう。