Cursus Raku / Functioneel, concurrent, reactief en webprogrammeren / Functioneel programmeren / Reductie
De reductie-meta-operator
Zet elke infixoperator tussen vierkante haken en hij wordt een reductie: hij wordt tussen elk element van een lijst ingevoegd en klapt de lijst tot één waarde in.
say [+] 1, 2, 3, 4, 5; # 15
say [*] 1, 2, 3, 4, 5; # 120[+] telt de lijst op alsof je
1 + 2 + 3 + 4 + 5 geschreven had; [*]
vermenigvuldigt haar. Hetzelfde werkt met elke infixoperator:
say [max] 4, 9, 2, 7; # 9
say [min] 4, 9, 2, 7; # 2
say [~] 'a', 'b', 'c'; # abc[max] reduceert met de operator max om het
grootste element te vinden, en [~] reduceert met de
stringplakoperator ~ om de stukken aan elkaar te
plakken.
De reductiemeta-operator werkt op elke lijst, ook op een bereik:
say [+] 1..100; # 5050Het is een van Raku’s compactste en meest expressieve mogelijkheden: een hele lus aan accumulatie in een paar haken.
Praktijk
Maak de 1 quiz over de inhoud van dit onderwerp.
Cursusnavigatie
← Reductie | Quiz — De reductie-meta-operator →
💪 Of ga direct naar de oefeningen in deze
sectie.