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);
05
030
135
00

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.

Kursa navigado

Fermaĵoj   |   Nombrilo