Corso di Raku / Appendice 🆕 / Flusso e funzioni / Subroutine e stile funzionale / Exercises / Ordinare per due chiavi

Soluzione: Ordinare per due chiavi

Ecco una possibile soluzione del compito.

Codice

my @people =
    { name => 'Anna', age => 30 },
    { name => 'Bob',  age => 25 },
    { name => 'Cara', age => 30 };

for @people.sort({ .<age>, .<name> }) -> %person {
    say "%person<name> (%person<age>)";
}

🦋 Trova il programma nel file sort-by-two-keys.raku.

Output

Bob (25)
Anna (30)
Cara (30)

Commenti

  1. Quando un blocco .sort restituisce una lista, Raku confronta per il primo elemento, poi per il secondo — quindi { .<age>, .<name> } ordina prima per età e usa il nome solo per sciogliere le parità.

  2. Anna e Cara condividono l’età 30, quindi vengono ordinate alfabeticamente; Bob, più giovane, viene per primo.

Ordinare per due chiavi   |   Tipi e macchine per il testo