Курс языка программирования Raku / Приложение 🆕 / Порядок выполнения и функции / Подпрограммы и функциональный стиль / Exercises / Сумма квадратов чётных чисел
Решение: Сумма квадратов чётных чисел
Вот один из возможных вариантов решения задачи.
Код
say [+] (1..10).grep(* %% 2).map(* ** 2);🦋 Исходный код можно найти в файле sum-even-squares.raku.
Вывод
220Комментарии
Цепочка читается слева направо:
.grep(* %% 2)оставляет чётные числа,.map(* ** 2)возводит каждое в квадрат, а[+]сворачивает квадраты в их сумму.Чётные числа
2 4 6 8 10в квадратах дают4 16 36 64 100, что в сумме составляет220.Те же шаги можно записать конвейером подачи, где
==>передаёт каждый результат следующему этапу, так что поток читается сверху вниз, а не как цепочка методов:(1..10) ==> grep(* %% 2) ==> map(* ** 2) ==> sum() ==> say();
Каждый
==>подаёт список слева от себя в следующую подпрограмму, а завершающий==> say()печатает итог —220.