Курс Raku / Функційне, конкурентне, реактивне та веб-програмування / Функційне програмування / Конвеєри даних
Оператор конвеєра
Оператор потоку ==> надсилає список зліва в операцію
праворуч. Результат тоді тече далі туди, куди вказує наступний
==>, і завершується у змінній, що його збирає:
(1..10) ==> grep(* %% 2) ==> my @evens;
say @evens; # [2 4 6 8 10]Читайте зліва направо: візьми 1..10, залиш парні числа й
збережи результат у @evens. Оператор %%
означає «ділиться на», тож * %% 2 залишає парні числа.
Важливе правило: потік має завершуватися ціллю —
зазвичай my @array (або наявною змінною). Дані течуть
уперед у неї. Записування присвоєння навпаки, через =,
робить не те, що вам потрібно, бо потік і присвоєння змагаються між
собою; завжди дозволяйте потокові завершитися у своїй змінній.
Потік — це просто ще один спосіб записати ланцюжок операцій над
списком. Той самий результат можна було б записати як
my @evens = (1..10).grep(* %% 2). Форма з потоком
розкривається тоді, коли етапів кілька, — це показує наступна тема.
Практика
Виконайте 1 тест за змістом цієї теми.
Навігація курсом
← Конвеєри даних | Тест — Оператор конвеєра →
💪 Або перейдіть одразу до вправ цього розділу.