Cursus Raku / Addendum 🆕 / Werken met gegevens / Tekst en strings / Exercises / Woordfrequentie

Oplossing: Woordfrequentie

Hier is een mogelijke oplossing voor de taak.

Code

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}";
}

🦋 Je kunt de broncode vinden in het bestand word-frequency.raku.

Uitvoer

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

Opmerkingen

  1. $text.words levert de woorden op; %freq{$_}++ verhoogt voor elk een teller en maakt de sleutel bij het eerste zien aan.

  2. Sorteren op -.value zet het frequentste voorop; .key als tweede sorteerveld toevoegen breekt gelijke stand alfabetisch, zodat de volgorde volledig deterministisch is.

Cursusnavigatie

Woordfrequentie   |   Draai de woordvolgorde om