Курс по Raku / Приложение 🆕 / Поток и функции / Подпрограми и функционален стил / Exercises / Сума на квадратите на четните

Решение: Сума на квадратите на четните

Ето едно възможно решение на задачата.

Код

say [+] (1..10).grep(* %% 2).map(* ** 2);

🦋 Намерете програмата във файла sum-even-squares.raku.

Изход

220

Коментари

  1. Веригата се чете отляво надясно: .grep(* %% 2) запазва четните числа, .map(* ** 2) повдига всяко на квадрат, а [+] свива квадратите до сумата им.

  2. Четните числа 2 4 6 8 10 дават квадратите 4 16 36 64 100, които се събират до 220.

  3. Същите стъпки могат да се запишат като конвейер от потоци, където ==> подава всеки резултат на следващия етап — така потокът се чете отгоре надолу, а не като верига от методи:

    (1..10)
        ==> grep(* %% 2)
        ==> map(* ** 2)
        ==> sum()
        ==> say();

    Всеки ==> подава левия си списък в следващата процедура, а завършващото ==> say() отпечатва сумата — 220.

Навигация в курса

Сума на квадратите на четните   |   Описание според типа