Clojure 当您有一个键和值的向量时,创建地图
我相信这很容易,但我怀疑在通往idomatic clojure的路上会有很多小问题。也许我错过了什么,但是看clojure地图页面,我没有找到解决方案 给定两个向量(一个键和另一个值),如何高效地(关键字!)创建一个从键到值的映射 键和值如下所示:Clojure 当您有一个键和值的向量时,创建地图,clojure,Clojure,我相信这很容易,但我怀疑在通往idomatic clojure的路上会有很多小问题。也许我错过了什么,但是看clojure地图页面,我没有找到解决方案 给定两个向量(一个键和另一个值),如何高效地(关键字!)创建一个从键到值的映射 键和值如下所示: (:year :month :day) (core/split "2013-02-18" #"-") 自然的解决方案是使用zipmap: (zipmap [:year :month :day] (clojure.string/split "2013
(:year :month :day) (core/split "2013-02-18" #"-")
自然的解决方案是使用zipmap:
(zipmap [:year :month :day] (clojure.string/split "2013-02-18" #"-"))
;= {:day "18", :month "02", :year "2013"}
对于这样的小地图,它实际上是相当有效的。对于更大的贴图,您希望zipmap
使用瞬变,而目前它没有使用瞬变。在JIRA有一张票,上面有我的补丁:
当然,将瞬态启用的zipmap
包含在自己的代码库中,并优先于clojure.core
中的代码使用它是非常简单的。如果要压缩较大的地图,这是一件非常重要的事情
代码可以从补丁或ClojureScript核心库复制,后者在其
zipmap
中使用瞬态;这里有一个从1844版开始的链接(此特定功能可以在Clojure中使用,无需任何更改)。您想要的是一个很好的答案,谢谢。Clojure到目前为止是一个爆炸,我感觉自己从OO编程的旁观者中解放出来了。。。