Курс Raku / Функційне, конкурентне, реактивне та веб-програмування / Конкурентне програмування / hyper і race 🆕 / Вправи / Сума з race
Розв’язання: Сума з race
Ось одне з можливих розв’язань задачі.
Код
say (1..50).race.map(* ** 2).grep(* %% 2).sum;🦋 Знайдіть програму у файлі parallel-sum.raku.
Вивід
22100Коментарі
.raceвиконує весь ланцюжок — піднесення кожного числа до квадрата та відбір парних квадратів — паралельно і, на відміну від.hyper, не обіцяє повернути елементи по порядку.Тут це нормально, бо останнім кроком є сума, незалежна від порядку: парні квадрати (
2²,4², …,50²) додаються до22100, у якому б порядку вони не прибули. Коли ви лише поєднуєте результати (сума, кількість),.raceє природним вибором і може нести трохи менше накладних витрат, ніж.hyper.
Навігація курсом
← Сума з race | hyper з фільтром →