Corso di Raku / Avanzato / Controllo di flusso / gather e
take / Exercises / Ripetere
ogni numero
Soluzione: Ripetere ogni numero
Ecco una possibile soluzione al compito.
Codice
my @result = gather for 1..4 -> $n {
take $n for 1..$n;
};
say @result;🦋 Puoi trovare il codice sorgente nel file collect-the-evens.raku.
Output
[1 2 2 3 3 3 4 4 4 4]Commenti
Nulla obbliga a un singolo
takeper iterazione. Qui iltake $n for 1..$ninterno eseguetakeun numero diverso di volte ad ogni passaggio, ed e esattamente la flessibilita che rendegather/takepiu potente di un semplicemap.Il ciclo esterno usa una variabile con nome
-> $ndi proposito. Se scrivessimo il ciclo interno con$_, ilforinterno riassegnerebbe$_al proprio contatore, e prenderemmo il contatore invece del numero corrente.gatherraccoglie semplicemente ogni valore che e stato preso, in ordine, quindi@resultfinisce per contenere1, poi due2, poi tre3, poi quattro4.
Navigazione del corso
← Ripetere ogni numero | Quadrati →