Raku-Kurs / Funktionale, nebenläufige, reaktive und Web-Programmierung / Nebenläufige Programmierung / hyper und race 🆕 / Exercises / Eine Summe mit race
Lösung: Eine Summe mit race
Hier ist eine mögliche Lösung der Aufgabe.
Code
say (1..50).race.map(* ** 2).grep(* %% 2).sum;🦋 Du findest den Quellcode in der Datei parallel-sum.raku.
Ausgabe
22100Kommentare
.raceführt die ganze Kette — jede Zahl quadrieren und nach den geraden Quadraten filtern — parallel aus und verspricht, anders als.hyper, nicht, die Elemente in Reihenfolge zu liefern.Das ist hier unbedenklich, denn der letzte Schritt ist eine Summe, die von der Reihenfolge unabhängig ist: Die geraden Quadrate (
2²,4², …,50²) summieren sich zu22100, in welcher Reihenfolge sie auch eintreffen. Wenn Sie die Ergebnisse nur zusammenfassen (Summe, Anzahl), ist.racedie natürliche Wahl und kann etwas weniger Aufwand mit sich bringen als.hyper.