Raku kurss / Funkcionālā, paralēlā, reaktīvā un tīmekļa programmēšana / Paralēlā programmēšana / hyper un race 🆕 / Exercises / Summa ar race

Risinājums: Summa ar race

Šeit ir iespējams risinājums uzdevumam.

Kods

say (1..50).race.map(* ** 2).grep(* %% 2).sum;

🦋 Atrodiet programmu failā parallel-sum.raku.

Izvade

22100

Komentāri

  1. .race visu ķēdi — katra skaitļa kāpināšanu kvadrātā un pāra kvadrātu filtrēšanu — izpilda paralēli un, atšķirībā no .hyper, nesola atgriezt elementus secībā.

  2. Šeit tas nekaitē, jo pēdējais solis ir summa, kas nav atkarīga no secības: pāra kvadrāti (, , …, 50²) saskaitās par 22100 neatkarīgi no tā, kādā kārtībā tie pienāk. Kad jūs rezultātus tikai apvienojat (summa, skaits), .race ir dabiskā izvēle un var nest mazliet mazākas pieskaitāmās izmaksas nekā .hyper.

Kursa navigācija

Summa ar race   |   hyper ar filtru