Курс по Raku / Функционално, паралелно, реактивно и уеб програмиране / Паралелно програмиране / hyper и race 🆕 / Exercises / hyper с филтър
Решение: hyper с филтър
Ето едно възможно решение на задачата.
Код
say (1..20).hyper.grep(* > 10).map(*²);🦋 Намерете програмата във файла hyper-filter.raku.
Изход
(121 144 169 196 225 256 289 324 361 400)Коментари
*²е просто записът на Raku за* ** 2с горен индекс:²е постфиксен оператор за степен, така че*²еWhateverCode, което повдига аргумента си на квадрат. Пишете* ** 2, ако предпочитате..hyperпаралелизира цялата верига —grep, който запазва числата над10, иmap, който ги повдига на квадрат, — като запазва реда.Понеже редът е запазен, квадратите се връщат в същата последователност като входовете си (
11²,12², …,20²), което дава(121 144 169 196 225 256 289 324 361 400).