Курс по 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]

Коментари

  1. Тялото на whenever се изпълнява по веднъж за стойност, превръща я в главни букви и я слага в @collected.

  2. react изчаква единствения поток да приключи, така че в момента на изпълнение на say масивът съдържа и трите стойности по ред: [A B C].

  3. Потокът има свои собствени методи, подобни на списъчните, така че можете да превърнете в главни букви в самата струя, а не в тялото — whenever Supply.from-list('a', 'b', 'c').map(*.uc) { @collected.push($_) } — и ефектът е същият. .map върху поток преобразува всяка стойност, докато тя минава покрай него; изборът е само дали преобразуването принадлежи на струята, или на реакцията.

Навигация в курса

Главни букви с react   |   Разпределете в два масива