clojure将lazy-seq转换为哈希映射

时间:2011-08-12 01:15:11

标签: clojure hashmap

我是一名初学者。如何从lazySeq创建地图?

(def fields [:name :age :color])
(def values ["joe" 32 "red"])
(def record (interleave fields values))

(def mymap (into {} record))  ;; ????

;; (get mymap :age)
;; 32

2 个答案:

答案 0 :(得分:81)

回答你的实际问题:

(apply hash-map record)

但是,由于您实际上已经有了单独的键和值,因此可以使用

(zipmap fields values)

或者如果你的心脏设置在into,你可以

(into {} (map vector fields values))

答案 1 :(得分:1)

这根本不合理,但由于原始问题想要intorecord一起使用:

(into {} (map vec (partition 2 record)))