Курс языка программирования Raku / Функциональное, конкурентное, реактивное и веб-программирование / Функциональное программирование / Генераторы / gather и take

Тест — gather и take

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

my @a = gather {
    for 1..5 {
        take $_ if $_ > 3;
    }
}

say @a;
0[1 2 3 4 5]
1[4 5]
0[1 2 3]
0[3 4 5]

take выполняется, только когда $_ > 3, поэтому в список добавляются лишь 4 и 5. Всё остальное пропускается, и получается [4 5].

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

gather и take   |   Ленивый gather