Курс Raku / Функційне, конкурентне, реактивне та веб-програмування / Функційне програмування / Конвеєри даних / Зворотний конвеєр
Тест — Зворотний конвеєр
Що надрукує наступна програма?
my @out <== map(* + 1) <== (10, 20, 30);
say @out;| 1 | [11 21 31] |
| 0 | [31 21 11] |
| 0 | [30 20 10] |
| 0 | [10 20 30] |
<== змінює лише напрямок, у якому записано конвеєр, а
не порядок даних. Джерело (10, 20, 30) втікає всередину —
ціль ліворуч — і map(* + 1) додає одиницю до кожного
елемента на місці, даючи [11 21 31]. Зворотний потік ніколи
не обертає елементи; для цього знадобився б явний
reverse.