Курс Raku / Функційне, конкурентне, реактивне та веб-програмування / Реактивне програмування / react і whenever / Вправи / Розкладіть у два масиви
Розв’язання: Розкладіть у два масиви
Ось одне з можливих розв’язань задачі.
Код
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;🦋 Знайдіть програму у файлі react-collect.raku.
Вивід
[4 7]
[42 100 15]Коментарі
Тіло
wheneverє звичайним кодом, тож воно може більше, ніж просто збирати, — тут воно вирішує, спрямовуючи кожне значення в@bigчи@smallу міру його надходження. Усередині кожного масиву значення зберігають порядок струменя.Блок react чекає завершення струменя, тож обидва масиви повні ще до друку.