Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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 
like image 617
Rob Buhler Avatar asked Aug 12 '11 01:08

Rob Buhler


1 Answers

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)) 
like image 148
amalloy Avatar answered Oct 05 '22 13:10

amalloy