Курс Raku / Розширені /
Порядок виконання / gather та
take / Вправи / Квадрати
Розв’язання: Квадрати
Ось один із можливих варіантів розв’язання задачі.
Код
my @squares = gather for 1..6 {
take $_ ** 2 if $_ %% 2;
};
say @squares;🦋 Вихідний код можна знайти у файлі squares.raku.
Вивід
[4 16 36]Коментарі
Умова
if $_ %% 2вирішує, чи брати, а$_ ** 2— що брати. Цю умову проходять лише парні числа2,4,6.Їхні квадрати
4,16,36— єдині значення, передані доtake, тожgatherзбирає саме їх. Виконання фільтрації й перетворення разом в одномуtake— це те, чого звичайнийmapне виражає так чисто.