Corso di Raku / Avanzato / Controllo di flusso / gather e
take / Exercises / Quadrati
Soluzione: Quadrati
Ecco una possibile soluzione al compito.
Codice
my @squares = gather for 1..6 {
take $_ ** 2 if $_ %% 2;
};
say @squares;🦋 Puoi trovare il codice sorgente nel file squares.raku.
Output
[4 16 36]Commenti
La condizione
if $_ %% 2decide se prendere, e$_ ** 2decide cosa prendere. Solo i numeri pari2,4,6superano la condizione.I loro quadrati
4,16,36sono gli unici valori passati atake, quindigatherraccoglie esattamente quelli. Eseguire il filtraggio e la trasformazione insieme in un unicotakee qualcosa che un semplicemapnon puo esprimere in modo altrettanto pulito.