Corso di Raku / Appendice 🆕 / Lavorare con i dati / Liste, array e hash / Exercises / Unite due inventari
Soluzione: Unite due inventari
Ecco una possibile soluzione del compito.
Codice
my %shop-a = apples => 3, pears => 2;
my %shop-b = apples => 4, plums => 5;
my %total;
for %shop-a, %shop-b -> %shop {
%total{$_} += %shop{$_} for %shop.keys;
}
say %total.sort.map({ "{.key}: {.value}" }).join(', ');🦋 Trova il programma nel file merge-inventories.raku.
Output
apples: 7, pears: 2, plums: 5Commenti
Scorrere entrambi gli hash e fare
%total{$_} += ...aggiunge ogni quantità al totale corrente, che la chiave fosse già stata vista o no — una chiave mancante parte da zero.%total.sortordina le coppie per chiave, e il.mapformatta ciascuna comechiave: valoreprima che vengano unite.