Курс языка программирования Raku / Продвинутый уровень / Порядок выполнения / gather и take

Тест — gather

Что напечатает следующая программа?

my @r = gather for 1..6 {
    take $_ if $_ %% 3;
};

say @r;
1[3 6]
0[1 2 3 4 5 6]
0[3]
0[]

gather собирает только те значения, для которых был вызван take. Условие $_ %% 3 истинно только для 3 и 6, поэтому берутся только эти два значения, и результат — [3 6].

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

Решение: Собирать до заполнения   |   Префиксы инструкций