Clojure的zip-map有什么作用?

Est*_*ito 0 clojure zipmap

我是Clojure的新手,我需要这个功能的帮助.如果你能告诉我这个功能是做什么的,它是如何工作的,我真的很感激.

(defn zip-map
  [k v]
    (into{} (map vec (partition 2 (interleave k v)))))
Run Code Online (Sandbox Code Playgroud)

pon*_*zao 8

用法示例:

(zip-map [:a :b :c] [1 2 3]) ;=> {:a 1, :b 2, :c 3}    
Run Code Online (Sandbox Code Playgroud)

从内到外:

(interleave [:a :b :c] [1 2 3]) ;=> (:a 1 :b 2 :c 3)
(partition 2 '(:a 1 :b 2 :c 3)) ;=> ((:a 1) (:b 2) (:c 3))
(map vec '((:a 1) (:b 2) (:c 3))) ;=> ([:a 1] [:b 2] [:c 3])
(into {} '([:a 1] [:b 2] [:c 3])) ;=> {:a 1, :b 2, :c 3}
Run Code Online (Sandbox Code Playgroud)