Kurso de Raku / Funkcia, samtempa, reaktiva kaj reta programado / Funkcia programado / Lambdoj kaj fermaĵoj / Fermaĵoj
Kvizo — Fermaĵoj
Kion presas la jena programo?
sub make-acc {
my $total = 0;
return sub ($x) { $total += $x };
}
my &add = make-acc;
add(10);
add(20);
say add(5);| 0 | 5 |
| 0 | 30 |
| 1 | 35 |
| 0 | 0 |
La redonita subprogramo fermiĝas super $total, do ĉiuj
tri vokoj kunhavas la saman variablon. La unuaj du vokoj alportas ĝin al
30; la tria aldonas 5 kaj presas la kurantan
sumon, 35.