Corso di Raku / Programmazione funzionale, concorrente, reattiva e web / Programmazione reattiva / react e whenever / Exercises / Maiuscolo con react
Soluzione: Maiuscolo con react
Ecco una possibile soluzione del compito.
Codice
my @collected;
react {
whenever Supply.from-list('a', 'b', 'c') {
@collected.push($_.uc);
}
}
say @collected;🦋 Trova il programma nel file react-upcase.raku.
Output
[A B C]Commenti
Il corpo del
whenevergira una volta per valore, rendendolo maiuscolo e spingendolo in@collected.reactaspetta che l’unico supply finisca, quindi quando ilsaygira l’array contiene tutti e tre i valori in ordine:[A B C].Un supply ha metodi simili a quelli degli elenchi, quindi potresti rendere maiuscolo nel flusso invece che nel corpo —
whenever Supply.from-list('a', 'b', 'c').map(*.uc) { @collected.push($_) }— e l’effetto è lo stesso..mapsu un supply trasforma ogni valore mentre scorre; la scelta è semplicemente se la trasformazione appartenga al flusso o alla reazione.