Курс по Raku / Функционално, паралелно, реактивно и уеб програмиране / Функционално програмиране / Генератори / Exercises / Събиране с условие

Решение: Събиране с условие

Ето едно възможно решение на задачата.

Код

my @vowels = gather {
    for 'education'.comb {
        take $_ if $_ ~~ / <[aeiou]> /;
    }
}

say @vowels;

🦋 Намерете програмата във файла gather-vowels.raku.

Изход

[e u a i o]

Коментари

  1. .comb разбива думата на отделни знаци, които цикълът обхожда по ред.

  2. take запазва знак само когато той съвпадне с класа на гласните, което дава гласните в реда, в който се появяват.

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

Събиране с условие   |   Итератори