Corso di Raku / Appendice 🆕 / Flusso e funzioni / Subroutine e stile funzionale / Exercises / Somma dei quadrati pari

Soluzione: Somma dei quadrati pari

Ecco una possibile soluzione del compito.

Codice

say [+] (1..10).grep(* %% 2).map(* ** 2);

🦋 Trova il programma nel file sum-even-squares.raku.

Output

220

Commenti

  1. La catena si legge da sinistra a destra: .grep(* %% 2) conserva i numeri pari, .map(* ** 2) eleva ciascuno al quadrato, e [+] riduce i quadrati alla loro somma.

  2. I numeri pari 2 4 6 8 10 elevati al quadrato danno 4 16 36 64 100, che sommano a 220.

  3. Gli stessi passi si possono scrivere come pipeline di flusso, dove ==> passa ogni risultato allo stadio successivo — così il flusso si legge dall’alto in basso invece che come catena di metodi:

    (1..10)
        ==> grep(* %% 2)
        ==> map(* ** 2)
        ==> sum()
        ==> say();

    Ogni ==> alimenta con la lista alla sua sinistra la routine successiva, e il conclusivo ==> say() stampa il totale, 220.

Somma dei quadrati pari   |   Descrivere in base al tipo