Curso de Raku / Programación funcional, concurrente, reactiva y web / Programación reactiva / react y whenever / Exercises / Mayúsculas con react
Solución: Mayúsculas con react
Aquí tienes una posible solución para la tarea.
Código
my @collected;
react {
whenever Supply.from-list('a', 'b', 'c') {
@collected.push($_.uc);
}
}
say @collected;🦋 Puedes encontrar el código fuente en el archivo react-upcase.raku.
Salida
[A B C]Comentarios
El cuerpo del
wheneverse ejecuta una vez por valor, pasándolo a mayúsculas y añadiéndolo a@collected.reactespera a que el único supply termine, así que cuando se ejecuta elsayel array ya contiene los tres valores en orden:[A B C].Un supply tiene sus propios métodos al estilo de las listas, así que podrías pasar a mayúsculas dentro del flujo en lugar de en el cuerpo —
whenever Supply.from-list('a', 'b', 'c').map(*.uc) { @collected.push($_) }— y el efecto es el mismo..mapsobre un supply transforma cada valor según pasa; la elección es simplemente si la transformación pertenece al flujo o a la reacción.