Reputation: 2511
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
Upvotes: 41
Views: 22019
Reputation: 91857
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))
Upvotes: 91
Reputation: 336
This isn't sensible at all, but since the original question wanted to use into
with record
:
(into {} (map vec (partition 2 record)))
Upvotes: 3