Kurso de Raku / Funkcia, samtempa, reaktiva kaj reta programado / Reaktiva programado / react kaj whenever / Exercises / Disdividu en du tabelojn

Solvo: Disdividu en du tabelojn

Jen ebla solvo de la tasko.

Kodo

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;

🦋 Vi povas trovi la fontkodon en la dosiero react-collect.raku.

Eligo

[4 7]
[42 100 15]

Komentoj

  1. La korpo whenever estas ordinara kodo, do ĝi povas fari pli ol kolekti — ĉi tie ĝi decidas, direktante ĉiun valoron al @big@small laŭ ĝia alveno. Ene de ĉiu tabelo la valoroj konservas sian fluordon.

  2. La bloko react atendas, ĝis la fluo estas finita, do ambaŭ tabeloj estas kompletaj antaŭ ol ili estas presataj.

Kursa navigado

Disdividu en du tabelojn   |   Du whenever