Cursus Raku / Functioneel, concurrent, reactief en webprogrammeren / Reactief programmeren / react en whenever / Exercises / Verdeel over twee arrays
Oplossing: Verdeel over twee arrays
Hier is een mogelijke oplossing voor de taak.
Code
my @small;
my @big;
react {
whenever Supply.from-list(4, 42, 7, 100, 15) {
if $_ > 10 { @big.push($_) }
else { @small.push($_) }
}
}
say @small;
say @big;🦋 Je kunt de broncode vinden in het bestand react-collect.raku.
Uitvoer
[4 7]
[42 100 15]Opmerkingen
De
whenever-body is gewone code, dus hij kan meer dan verzamelen — hier beslist hij en stuurt hij elke waarde bij binnenkomst naar@bigof@small. Binnen elke array houden de waarden hun stroomvolgorde.Het react-blok wacht tot de stroom klaar is, dus zijn beide arrays compleet voordat ze afgedrukt worden.