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

Rob*_*ler 37 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
Run Code Online (Sandbox Code Playgroud)

ama*_*loy 82

要回答您的实际问题:

(apply hash-map record)
Run Code Online (Sandbox Code Playgroud)

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

(zipmap fields values)
Run Code Online (Sandbox Code Playgroud)

或者,如果你有心into,你可以

(into {} (map vector fields values))
Run Code Online (Sandbox Code Playgroud)

  • 感谢您展示其他方法! (2认同)