Kurso de Raku / Funkcia, samtempa, reaktiva kaj reta programado / Funkcia programado / Altordaj funkcioj
Redoni subprogramojn
Subprogramo ankaŭ povas redoni subprogramon. Tio permesas al vi konstrui novajn funkciojn tuj, agorditajn al la argumentoj, kiujn vi donas:
sub adder($n) {
sub ($x) { $x + $n };
}
my &add5 = adder(5);
say add5(3); # 8adder(5) konstruas kaj redonas anoniman subprogramon,
kiu aldonas 5 al sia argumento. Ni konservas ĝin en
&add5 kaj vokas ĝin kiel ĉiun alian subprogramon. Voki
adder(10) donus malsaman aldonilon, kiu aldonas dek.
Rimarku, ke la redonita subprogramo memoras la valoron de
$n el la voko, kiu kreis ĝin — add5 konservas
sian 5 eĉ post kiam adder finiĝis.
Subprogramo, kiu kaptas valorojn el la amplekso, kie ĝi estis kreita,
nomiĝas fermaĵo, la temo
de la sekva sekcio.
Redoni funkciojn estas kompakta maniero produkti familiojn de rilataj
operacioj sen ripeti sin: unu difino de adder donas
senliman nombron da specifaj aldoniloj.
Praktiko
Vin atendas 1 kvizo pri la enhavo de ĉi tiu temo.
Kursa navigado
← Kvizo — Transdoni subprogramojn | Kvizo — Altordaj funkcioj →
💪 Aŭ iru rekte al la ekzercoj de ĉi tiu
sekcio.