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