Курс Raku / Додаток 🆕 / Порядок виконання та функції / Підпрограми та функційний стиль / Вправи / Сума квадратів парних чисел
Розв’язання: Сума квадратів парних чисел
Ось одне з можливих розв’язань задачі.
Код
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.