Raku-Kurs / Fortgeschritten / Kontrollfluss / gather und
take / Exercises / Jede Zahl
wiederholen
Lösung: Jede Zahl wiederholen
Hier ist eine mögliche Lösung der Aufgabe.
Code
my @result = gather for 1..4 -> $n {
take $n for 1..$n;
};
say @result;🦋 Du findest den Quellcode in der Datei collect-the-evens.raku.
Ausgabe
[1 2 2 3 3 3 4 4 4 4]Kommentare
Nichts erzwingt ein einzelnes
takepro Durchlauf. Hier führt das inneretake $n for 1..$nbei jedem Durchgang eine unterschiedliche Anzahl vontake-Aufrufen aus, was genau die Flexibilität ist, diegather/takemächtiger macht als ein einfachesmap.Die äußere Schleife verwendet absichtlich eine benannte Variable
-> $n. Wenn wir die innere Schleife mit$_schreiben würden, würde das innerefordie Variable$_an seinen eigenen Zähler binden, und wir würden den Zähler statt der aktuellen Zahl nehmen.gathersammelt einfach jeden Wert, der genommen wurde, in der Reihenfolge, sodass@resultam Ende1, dann zwei2en, dann drei3en, dann vier4en enthält.