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 positive

Omnes 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); # 120

Primus 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.

  1. Pretium ingens
  2. Valor absolutus
  3. Magnitudinem classificare

Quiz — Vocatio cum duplo puncto   |   Pretium ingens