Corso di Raku / Programmazione funzionale, concorrente, reattiva e web / Programmazione concorrente / hyper e race 🆕 / Exercises / Una somma con race
Soluzione: Una somma con race
Ecco una possibile soluzione del compito.
Codice
say (1..50).race.map(* ** 2).grep(* %% 2).sum;🦋 Trova il programma nel file parallel-sum.raku.
Output
22100Commenti
.raceesegue tutta la catena — elevare al quadrato ogni numero e filtrare i quadrati pari — in parallelo e, a differenza di.hyper, non promette di restituire gli elementi in ordine.Qui va bene perché il passo finale è una somma, che è indipendente dall’ordine: i quadrati pari (
2²,4², …,50²) fanno22100a prescindere dall’ordine in cui arrivano. Quando ti limiti a combinare i risultati (somma, conteggio),.raceè la scelta naturale e può portare un po’ meno sovraccarico di.hyper.