Курс по Raku / Напреднали / Управление на потока / gather и
take / Exercises / Квадрати
Решение: Квадрати
Ето едно възможно решение на задачата.
Код
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не може да изрази толкова чисто.
Навигация в курса
← Квадрати | Gather до запълване →