Search code examples
clojurehashmap

clojure convert lazy-seq to hash map


I'm a clojure beginner. How do I create a map from a lazySeq?

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

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

;; (get mymap :age)
;; 32

Solution

  • To answer your actual question:

    (apply hash-map record)
    

    But since you actually already have separate keys and values, I would suggest skipping the interleave step and instead writing

    (zipmap fields values)
    

    Or if you have your heart set on into, you could

    (into {} (map vector fields values))