Clojure zipmap 需要填写的空白

Clojure zipmap a blank needs to be filled

(testing "zipmap"

  (is (= {:a 1 :b 2} (zipmap [:a :b] '(1 2))))
  (is (= {3 1, 2 2, 1 3} (zipmap [1 2 3] [3 2 1])))
  (is (= {} (zipmap [] [:a :b])))
  (is (= {2 :b, 1 :a} (zipmap [1 2 3] [:a :b])))

我解决了前 4 个问题。但我无法弄清楚最后一个。我们需要填写 zipmap 部分。(我在那里放了 2 个问号)。问题是我们需要放在那里才能得到这个输出:

{:list '() :map {} :vector [] :set #{}}

(is (= {:list '() :map {} :vector [] :set #{}} (zipmap ? ? )))))

这实际上是我作业的一部分,但我真的很想知道答案。

谢谢,

zipmap 采用两个序列,一个包含所有键,另一个包含所有值。它生成一个映射,其中每个键与另一个列表中相同位置的值相匹配

user> (zipmap [:list :map :vector :set] [`() {} [] #{}])
{:set #{}, :vector [], :map {}, :list ()}

在这种情况下,系统会要求您提供一系列关键字和一系列不同类型集合的空示例,以生成关键字与集合示例的映射。