Clojure конвертировать lazy-seq в хэш-карту
Я новичок clojure. Как создать карту из lazySeq?
(def fields [:name :age :color])
(def values ["joe" 32 "red"])
(def record (interleave fields values))
(def mymap (into {} record)) ;; ????
;; (get mymap :age)
;; 32
Ответы
Ответ 1
Чтобы ответить на ваш реальный вопрос:
(apply hash-map record)
Но поскольку у вас уже есть отдельные ключи и значения, вы можете использовать
(zipmap fields values)
Или, если у вас настроено ваше сердце на into
, вы можете
(into {} (map vector fields values))
Ответ 2
Это неразумно, но поскольку исходный вопрос хотел использовать into
с record
:
(into {} (map vec (partition 2 record)))