Курс по 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)

Коментари

  1. е просто записът на Raku за * ** 2 с горен индекс: ² е постфиксен оператор за степен, така че е WhateverCode, което повдига аргумента си на квадрат. Пишете * ** 2, ако предпочитате.

  2. .hyper паралелизира цялата верига — grep, който запазва числата над 10, и map, който ги повдига на квадрат, — като запазва реда.

  3. Понеже редът е запазен, квадратите се връщат в същата последователност като входовете си (11², 12², …, 20²), което дава (121 144 169 196 225 256 289 324 361 400).

Навигация в курса

hyper с филтър   |   Реактивно програмиране