Raku-Kurs / Fortgeschritten / Subroutinen / Aufruf mit Doppelpunkt / Exercises / Ein Doppelpunkt-map
Lösung: Ein Doppelpunkt-map
Hier ist eine mögliche Lösung der Aufgabe.
Code
say (1..10).map(* * 2).grep: * > 10;🦋 Den Quellcode findest du in der Datei colon-map.raku.
Ausgabe
(12 14 16 18 20)Kommentare
Nur
grep, der letzte Aufruf in der Kette, kann die Doppelpunkt-Form verwenden. Der Doppelpunkt macht* > 10zu seinem Argument, genau wie esgrep(* > 10)tun würde. Da wir die Ergebnisse trotzdem ausgeben müssen, wirdsaynun als Funktion verwendet, nicht als Methode.Der
map-Aufruf muss seine Klammern behalten. Würde man stattdessen.map: * * 2schreiben, würde der Doppelpunkt.grep(* > 10)als Teil der Argumente vonmapverschlucken, und die Kette würde brechen.