Convertir una lista de mapas por los valores de los mapas [Clojure]
Tengo una lista llena de muchos mapas (todos ellos tienen la misma clave), como este:
({:a 1} {:a 1} {:a 2} {:a 2} {:a 3} {:a 2})
Me gustaría convertirlo en un mapa que almacena la ocurrencia del valor de cada mapa. Por ejemplo, la lista de arriba debería devolver el siguiente mapa:
{:1 2, :2 3, :3 1}
¿Alguna idea de cómo puedo hacer eso?
davy.ai
Una solución para convertir la lista de mapas en un mapa que almacena la ocurrencia del valor de cada mapa utilizando Clojure es:
Explicación:
contar-ocurrencias
que toma una listalst
como entrada.->>
para pasar la lista de entradalst
a través de múltiples formas, una a la vez.:a
sobre cada mapa de la lista, extrayendo el valor asociado con la clave:a
.frequencies
para contar las ocurrencias de cada valor en la secuencia resultante de números.