Curso de Raku / Apéndice 🆕 / Trabajar con datos / Listas, arrays y hashes / Exercises / Fusione dos inventarios
Solución: Fusione dos inventarios
Aquí tienes una posible solución para la tarea.
Código
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(', ');🦋 Puedes encontrar el código fuente en el archivo merge-inventories.raku.
Salida
apples: 7, pears: 2, plums: 5Comentarios
Recorrer ambos hashes y hacer
%total{$_} += ...suma cada cantidad al total acumulado, haya aparecido antes la clave o no: una clave ausente parte de cero.%total.sortordena los pares por clave, y el.mapformatea cada uno comoclave: valorantes de unirlos.