Kurso de Raku / Funkcia, samtempa, reaktiva kaj reta programado / Funkcia programado / Lambdoj kaj fermaĵoj / Exercises / Nombrilo

Solvo: Nombrilo

Jen ebla solvo de la tasko.

Kodo

sub make-counter($step) {
    my $n = 0;
    return sub { $n += $step };
}

my &count = make-counter(10);
say count();
say count();
say count();

🦋 Vi povas trovi la fontkodon en la dosiero counter.raku.

Eligo

10
20
30

Komentoj

  1. La fermaĵo kaptas du aferojn el make-counter: la parametron $step kaj la privatan variablon $n. Ambaŭ restas vivaj post kiam make-counter revenas.

  2. Ĉiu voko aldonas $step al $n kaj redonas la novan sumon. Nombrilo konstruita kun malsama paŝo antaŭenirus je tiu kvanto anstataŭe.

Kursa navigado

Nombrilo   |   Multiplikilo