我一直在用map
Clojure 中的函数进行试验,并且想知道,应用map
到map
集合的最佳实践是什么,以便:
(map #(pprint (str %1 " " %2)) {:hello 1 :world 2})
输出(顺序现在并不重要):
:hello 1
:world 2
我的第一个想法是:
(def my-map {:hello 1 :world 2})
(map #(pprint (str %1 " " %2)) (keys my-map) (vals my-map))
但!我在文档中没有发现任何证据表明 Clojure(或例如 ClojureScript)保证keys
和vals
序列的顺序是相互保留的。
另一个想法是:
(map #(pprint (str (first %1) " " (rest %1))) my-map)
这不像普通的%1
and那样好%2
。
我相信有更好的方法来做到这一点。知道的可以分享一下吗?提前致谢!