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
Quando un blocco
.sortrestituisce 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à.Anna e Cara condividono l’età
30, quindi vengono ordinate alfabeticamente; Bob, più giovane, viene per primo.