Raku kurss / Pielikums 🆕 / Plūsma un funkcijas / Apakšprogrammas un funkcionālais stils / Exercises / Pāra skaitļu kvadrātu summa

Risinājums: Pāra skaitļu kvadrātu summa

Šeit ir iespējams risinājums uzdevumam.

Kods

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

🦋 Atrodiet programmu failā sum-even-squares.raku.

Izvade

220

Komentāri

  1. Ķēde lasās no kreisās uz labo: .grep(* %% 2) patur pāra skaitļus, .map(* ** 2) katru kāpina kvadrātā, un [+] kvadrātus reducē līdz to summai.

  2. Pāra skaitļi 2 4 6 8 10 kvadrātā dod 4 16 36 64 100, kas saskaitās par 220.

  3. Tos pašus soļus var uzrakstīt kā plūsmas konveijeru, kurā ==> katru rezultātu padod nākamajam posmam, — tā plūsma lasās no augšas uz leju, nevis kā metožu ķēde:

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

    Katrs ==> savu kreisās puses sarakstu ievada nākamajā procedūrā, un noslēdzošais ==> say() izdrukā summu 220.

Kursa navigācija

Pāra skaitļu kvadrātu summa   |   Apraksts pēc tipa