Курс языка программирования Raku / Приложение 🆕 / Работа с данными / Текст и строки / Exercises / Частота слов

Решение: Частота слов

Вот один из возможных вариантов решения задачи.

Код

my $text = 'the cat sat on the mat the cat';

my %freq;
%freq{$_}++ for $text.words;

for %freq.sort({ -.value, .key }) -> $pair {
    say "{$pair.key}: {$pair.value}";
}

🦋 Исходный код можно найти в файле word-frequency.raku.

Вывод

the: 3
cat: 2
mat: 1
on: 1
sat: 1

Комментарии

  1. $text.words выдаёт слова, а %freq{$_}++ увеличивает счётчик для каждого, создавая ключ при первой встрече.

  2. Сортировка по -.value ставит самые частые слова первыми, а добавление .key вторым ключом сортировки разрешает ничьи по алфавиту, так что порядок полностью определён.

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

Частота слов   |   Обратный порядок слов