Corso di Raku / Programmazione funzionale, concorrente, reattiva e web / Programmazione funzionale / Lambda e chiusure / Exercises / Un accumulatore

Soluzione: Un accumulatore

Ecco una possibile soluzione del compito.

Codice

sub make-accumulator {
    my $sum = 0;
    return -> $x { $sum += $x };
}

my &acc = make-accumulator;
acc(10);
say acc(5);

🦋 Trova il programma nel file accumulator.raku.

Output

15

Commenti

  1. La chiusura cattura $sum, che sopravvive fra una chiamata e l’altra.

  2. acc(10) porta il totale a 10; acc(5) aggiunge cinque e restituisce 15.

Un accumulatore   |   Riduzione