通过映射值转换映射列表 [clojure]

Gui*_*ura 1 dictionary list clojure data-structures

我有一个包含许多地图的列表(所有地图都有相同的键),如下所示:

({:a 1} {:a 1} {:a 2} {:a 2} {:a 3} {:a 2})
Run Code Online (Sandbox Code Playgroud)

我想将其转换为一个映射,存储每个映射值的出现情况。例如,上面的列表应返回以下地图:

{:1 2, :2 3, :3 1}
Run Code Online (Sandbox Code Playgroud)

关于我该如何做到这一点有什么想法吗?

Ste*_*ott 7

(def m '({:a 1} {:a 1} {:a 2} {:a 2} {:a 3} {:a 2}))

(frequencies (map :a m)) ;; => {1 2, 2 3, 3 1}
Run Code Online (Sandbox Code Playgroud)

请注意,结果的键不是关键字,因为这样做会很奇怪。