Курс по Raku / Функционално, паралелно, реактивно и уеб програмиране / Реактивно програмиране / react и whenever / Exercises / Главни букви с react
Решение: Главни букви с react
Ето едно възможно решение на задачата.
Код
my @collected;
react {
whenever Supply.from-list('a', 'b', 'c') {
@collected.push($_.uc);
}
}
say @collected;🦋 Намерете програмата във файла react-upcase.raku.
Изход
[A B C]Коментари
Тялото на
wheneverсе изпълнява по веднъж за стойност, превръща я в главни букви и я слага в@collected.reactизчаква единствения поток да приключи, така че в момента на изпълнение наsayмасивът съдържа и трите стойности по ред:[A B C].Потокът има свои собствени методи, подобни на списъчните, така че можете да превърнете в главни букви в самата струя, а не в тялото —
whenever Supply.from-list('a', 'b', 'c').map(*.uc) { @collected.push($_) }— и ефектът е същият..mapвърху поток преобразува всяка стойност, докато тя минава покрай него; изборът е само дали преобразуването принадлежи на струята, или на реакцията.