Cursus Raku / Provectus / Subprogrammata
Multiplex dispatch
In parte Essentialia occurristi multi-functionibus: pluribus subroutinis quae nomen commune habent, ubi Raku rectam eligit inspiciendo genera argumentorum. Hic mechanismus multiplex dispatium vocatur.
Hactenus, electio ex genere argumentorum facta est. Clausula
where te longius ire sinit et ex valore quoque
dispatchere. Post parametrum scribitur et condicionem continet quam
argumentum satisfacere debet ut ille candidatus eligatur:
multi sub info(Int $n where $n < 0) { say "$n is negative" }
multi sub info(Int $n where $n == 0) { say "$n is zero" }
multi sub info(Int $n where $n > 0) { say "$n is positive" }
info(-5);
info(0);
info(7);Quaeque vocatio ad candidatum it cuius condicio vera est pro dato valore:
-5 is negative
0 is zero
7 is positiveOmnes tres candidati eandem signaturam habent quantum ad genera
pertinet — unum Int — itaque sine clausulis
where inter se confligerent. Condiciones eos distinctos
faciunt.
Casus basis pro recursione
Usus communis clausulae where est ut punctum sistendi
recursionis ut candidatum separatum praebeat. Hic est factorialis
iterum, in duos multi-subs divisus:
multi sub fact(Int $n where $n <= 1) { 1 }
multi sub fact(Int $n) { $n * fact($n - 1) }
say fact(5); # 120Primus candidatus casum basem tractat ($n valoris
1 vel minoris) et simpliciter 1 reddit. Omnis
alius valor ad secundum candidatum it, qui fact iterum cum
numero minore vocat. Nullum if intra functionem est —
electio inter casum basem et gradum recursivum a dispatchore fit.
Exercitatio
Sequuntur 1 quiz de contentis huius argumenti.
Exercitationes
In hac sectione sunt 3 exercitationes. Omnia huius sectionis argumenta inspice antequam exercitationes incipias.