Cursus Raku / Functioneel, concurrent, reactief en webprogrammeren / Reactief programmeren / react en whenever / Exercises / Hoofdletters met react

Oplossing: Hoofdletters met react

Hier is een mogelijke oplossing voor de taak.

Code

my @collected;

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

say @collected;

🦋 Je kunt de broncode vinden in het bestand react-upcase.raku.

Uitvoer

[A B C]

Opmerkingen

  1. De whenever-body draait één keer per waarde, zet haar in hoofdletters en duwt haar op @collected.

  2. react wacht tot de enkele supply klaar is, dus tegen de tijd dat say draait bevat de array alle drie de waarden op volgorde: [A B C].

  3. Een supply heeft eigen lijstachtige methoden, dus je zou de hoofdletters in de stroom kunnen zetten in plaats van in de body — whenever Supply.from-list('a', 'b', 'c').map(*.uc) { @collected.push($_) } — met hetzelfde effect. .map op een supply vormt elke waarde om terwijl ze langsstroomt; de keuze is eenvoudigweg of de omvorming bij de stroom of bij de reactie hoort.

Cursusnavigatie

Hoofdletters met react   |   Verdeel over twee arrays