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
De
whenever-body draait één keer per waarde, zet haar in hoofdletters en duwt haar op@collected.reactwacht tot de enkele supply klaar is, dus tegen de tijd datsaydraait bevat de array alle drie de waarden op volgorde:[A B C].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..mapop een supply vormt elke waarde om terwijl ze langsstroomt; de keuze is eenvoudigweg of de omvorming bij de stroom of bij de reactie hoort.