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

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

Обратният поток   |   Поток от големите числа