地图中的键和值的顺序

kli*_*ron 9 clojure

当我们在地图上调用键时,在我们在同一个地图上调用val时,结果seq中的键的顺序是否保证与值的顺序相同?

换句话说,可以将函数f映射到地图的内容上,如下所示:

(map #(f %1 %2) (keys m) (vals m))
Run Code Online (Sandbox Code Playgroud)

如果不是,在clojure中是否有相当于perl的每个?或者也许是zipmap的反函数?

Ham*_*aya 13

你可以遍历地图,得到关键的val对,


(map (fn [[key val]]
       (println key val)) {:a :b :c :d})

几乎所有的clojure数据结构都是可选的.

  • `(对于[[kv] {:a:b:c:d}](println kv))`相当好 - 我尽量避免写``(map(fn ...))`. (6认同)