Cursus Raku / Elementa / Plura de generibus / Associativa data genera / Exercises / Visus prius?

Solutio: Visus prius?

Hoc munus est classicum exemplum utendi tabula ad res notandas. Ante circulum, tabula %seen creatur. Intra circulum, ingressum $word servit ut clavis tabulae.

Codex

Hic est solutio:

my %seen;
loop {
    my $word = prompt 'Verbum: ';
    if %seen{$word} {
        say %seen{$word} == 1 ?? 'Visum!' !! say "Visum %seen{$word} vicibus!";
    }
    %seen{$word}++;
}

🦋 Inveni codicem fontem in archivo seen-before.raku.

Exitus

$ raku exercises/associatives/seen-before.raku
Verbum: Ego
Verbum: numquam
Verbum: vidi
Verbum: a
Verbum: vidi
Visum!
Verbum: quod
Verbum: vidi
Visum 2 vicibus!
Verum
Verbum: ut
Verbum: quod
Visum!
Verbum: vidi
Visum 3 vicibus!
Verum
Verbum: serravit
Verbum: ^C

Commentarium

Constructum %seen{$word}++ non solum incrementat valorem sed etiam creat si nondum exstiterit. Processus creationis vocatur autovivificatio. Nota quod non fit cum tantum legis valorem sicut in condicione: if %seen{$word}.

Visus prius?   |   Codices nationum