Clojure zipmap需要填充空白

时间:2015-04-08 00:15:58

标签: clojure zipmap

(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 ? ? )))))

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

谢谢,

1 个答案:

答案 0 :(得分:1)

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

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

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

相关问题