Cursus Raku / Geavanceerd / Subroutines / Aanroepen met een dubbele punt / Exercises / Een dubbele-punt-map
Oplossing: Een dubbele-punt-map
Hier is een mogelijke oplossing voor de opgave.
Code
say (1..10).map(* * 2).grep: * > 10;🦋 De broncode is te vinden in het bestand colon-map.raku.
Uitvoer
(12 14 16 18 20)Opmerkingen
Alleen
grep, de laatste aanroep in de keten, kan de dubbele-puntvorm gebruiken. De dubbele punt maakt* > 10het argument, precies zoalsgrep(* > 10)zou doen. Omdat we het resultaat nog moeten afdrukken, wordtsaynu als functie gebruikt, niet als methode.De
map-aanroep moet zijn haakjes behouden. Als je.map: * * 2zou schrijven, zou de dubbele punt.grep(* > 10)opslikken als onderdeel van de argumenten vanmap, en de keten zou breken.