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); # 10Variabilis $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); # 10Hic 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); # 12Transmissio 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.