Cursus Raku / Obiecta, introitus et exitus, et exceptiones / Classes et obiecta / Protocollum metaobjectorum 🆕 / Exercises / Rhombus classium

Solutio: Rhombus classium

Ecce solutio possibilis huius exercitationis.

Codex

class A {
}

class B is A {
}

class C is A {
}

class D is B is C {
}

say D.^mro.map(*.^name);

🦋 Inveni codicem fontem in archivo diamond-mro.raku.

Exitus

(D B C A Any Mu)

Commentarii

  1. D a duobus parentibus simul heredat — class D is B is C unumquemque cum proprio is enumerat. Haec est hereditas multiplex, et A, B, C, D adamantem formant: duae semitae a D sursum ad communem maiorem A.

  2. .^mro illum adamantem in unum ordinem quaerendi linearem complanat. D primum venit, deinde parentes eius B et C eo ordine quo scripti sunt, deinde communis A, et denique Any et Mu.

  3. Quamquam et B et C ad A ducunt, genus A semel apparet, et solum post utrumque. Ea est ratio ordinis resolutionis methodorum: omne genus exacte semel visitatur, et parens numquam ante filiam venit quae ab eo heredat — itaque methodus in B definita semper ante eam invenitur quam in A superscriberet.

Rhombus classium   |   Methodum adde