Raku-Kurs / Funktionale, nebenläufige, reaktive und Web-Programmierung / Reaktive Programmierung / react und whenever / Exercises / Großbuchstaben mit react

Lösung: Großbuchstaben mit react

Hier ist eine mögliche Lösung der Aufgabe.

Code

my @collected;

react {
    whenever Supply.from-list('a', 'b', 'c') {
        @collected.push($_.uc);
    }
}

say @collected;

🦋 Du findest den Quellcode in der Datei react-upcase.raku.

Ausgabe

[A B C]

Kommentare

  1. Der whenever-Rumpf läuft einmal je Wert, schreibt ihn groß und legt ihn auf @collected.

  2. react wartet, bis das eine Supply fertig ist, bis say läuft, enthält das Array also alle drei Werte in Reihenfolge: [A B C].

  3. Ein Supply hat eigene listenartige Methoden, Sie könnten also im Strom statt im Rumpf großschreiben — whenever Supply.from-list('a', 'b', 'c').map(*.uc) { @collected.push($_) } — mit derselben Wirkung. .map auf einem Supply formt jeden Wert um, während er vorbeifließt; die Wahl ist schlicht, ob die Umformung zum Strom oder zur Reaktion gehört.

Kursnavigation

Großbuchstaben mit react   |   In zwei Arrays sortieren