Cursus Raku / Provectus / Subprogrammata

Subprogrammata anonyma

Subroutina nomen habere non debet. Subroutina anonyma eodem modo scribitur quo subroutina ordinaria, sed sine nomine, et plerumque in variabili servatur ut postea eam vocare possis.

my $double = sub ($x) {
    $x * 2
};

say $double(5); # 10

Variabilis $double subroutinam continet, et $double(5) eam cum argumento 5 vocat.

Cuspides acutae

Raku breviorem notationem eiusdem rei offert – cuspidem acutam. Sagitta -> utitur ad parametros introducendos, et neque verbo sub neque parenthesibus circa eos eget:

my $double = -> $x {
    $x * 2
};

say $double(5); # 10

Hic est modus usitatissimus parvam subroutinam anonymam scribendi.

Sigillum &

Si subroutinam potius nomine quam per variabilem $ vocare vis, variabilem cum sigillo & declara. Tum eam sine sigillo vocare potes, prorsus sicut subroutinam ordinariam:

my &triple = -> $x {
    $x * 3
};

say triple(4); # 12

Transmissio ad aliam functionem

Subroutinam anonymam in variabili servare omnino non opus est. Quia mera est valor, eam statim functioni tradere potes quae talem exspectat – ut map, grep, vel sort:

say (1, 2, 3).map(-> $x { $x * 2 }); # (2 4 6)

Cuspis acuta hic est subroutina anonyma, et map eam semel pro quoque elemento vocat. Hoc re vera est quod semper fecisti: omnis { ... } clausura et -> $x { ... } quam ad map et grep tradidisti, parva subroutina anonyma est, ibi scripta ubi opus est, non prius nominata.

Exercitatio

Sequuntur 1 quiz de contentis huius argumenti.

Exercitationes

In hac sectione sunt 3 exercitationes. Omnia huius sectionis argumenta inspice antequam exercitationes incipias.

  1. Triplicare
  2. Quadratum anonymum
  3. Summa cum sigilo &

Quiz — Ambitus nidificatus   |   Triplicare