Curso de Raku / Apéndice 🆕 / Trabajar con datos / Listas, arrays y hashes / Exercises / El elemento más frecuente

Solución: El elemento más frecuente

Aquí tienes una posible solución para la tarea.

Código

my @values = <a b a c a b>;

my %count;
%count{$_}++ for @values;

say %count.sort(-*.value)[0].key;

🦋 Puedes encontrar el código fuente en el archivo most-common.raku.

Salida

a

Comentarios

  1. Tras contabilizar cada valor en %count, ordenar los pares por -*.value pone el más frecuente el primero; [0].key devuelve entonces ese elemento.

  2. Raku puede hacer el recuento por ti con un Bag, que cuenta cuántas veces aparece cada valor. Después .max(*.value) elige el par con el recuento más alto, y .key es el elemento en sí:

    my @values = <a b a c a b>;
    
    say @values.Bag.max(*.value).key; # a

    El recuento entero es una sola llamada a un método, y no hay ningún hash explícito que gestionar.

El elemento más frecuente   |   Combine dos listas en un hash