Курс языка программирования 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. — это просто запись * ** 2 с надстрочным индексом: ² является постфиксным оператором возведения в степень, поэтому — это WhateverCode, возводящий свой аргумент в квадрат. Если удобнее, пишите * ** 2.

  2. .hyper распараллеливает всю цепочку — и grep, оставляющий числа больше 10, и map, возводящий их в квадрат, — сохраняя при этом порядок.

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

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

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