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