Курс языка программирования 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.