Curso de Raku / Programación funcional, concurrente, reactiva y web / Programación reactiva / react y whenever / Exercises / Reparta en dos arrays

Solución: Reparta en dos arrays

Aquí tienes una posible solución para la tarea.

Código

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;

🦋 Puedes encontrar el código fuente en el archivo react-collect.raku.

Salida

[4 7]
[42 100 15]

Comentarios

  1. El cuerpo del whenever es código corriente, así que puede hacer más que recoger: aquí decide, encaminando cada valor a @big o a @small según llega. Dentro de cada array los valores conservan su orden en el flujo.

  2. El bloque react espera a que el flujo termine, así que ambos arrays están completos antes de imprimirse.

Reparta en dos arrays   |   Dos whenever