Cursus Raku / Addendum 🆕 / Verloop en functies / Subroutines en functionele stijl / Exercises / Som van de even kwadraten
Oplossing: Som van de even kwadraten
Hier is een mogelijke oplossing voor de taak.
Code
say [+] (1..10).grep(* %% 2).map(* ** 2);🦋 Je kunt de broncode vinden in het bestand sum-even-squares.raku.
Uitvoer
220Opmerkingen
De keten leest van links naar rechts:
.grep(* %% 2)houdt de even getallen,.map(* ** 2)kwadrateert elk, en[+]reduceert de kwadraten tot hun som.De even getallen
2 4 6 8 10kwadrateren tot4 16 36 64 100, wat samen220is.Dezelfde stappen kun je als feed-pijplijn schrijven, waar
==>elk resultaat aan de volgende fase doorgeeft — zodat de stroom van boven naar beneden leest in plaats van als methodeketen:(1..10) ==> grep(* %% 2) ==> map(* ** 2) ==> sum() ==> say();
Elke
==>voert haar linkerlijst aan de volgende routine, en de afsluitende==> say()drukt de som af,220.