Corso di Raku / Programmazione funzionale, concorrente, reattiva e web / Programmazione funzionale / Iteratori / Exercises / Sommare con pull-one
Soluzione: Sommare con pull-one
Ecco una possibile soluzione del compito.
Codice
my $it = (3, 7, 5).iterator;
my $sum = 0;
loop {
my $v := $it.pull-one;
last if $v =:= IterationEnd;
$sum += $v;
}
say $sum;🦋 Trova il programma nel file sum-with-pull-one.raku.
Output
15Commenti
.iteratordà la vista a estrazione dell’elenco, e ognipull-onerestituisce il numero successivo.Il valore viene legato con
:=, non assegnato, così che$v =:= IterationEndpossa individuare correttamente la fine — un=di assegnamento confronterebbe il contenitore invece del valore. Il ciclo somma3,7e5, poi incontraIterationEnde si ferma, lasciando15.