(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 ? ? )))))
这实际上是我作业的一部分,但我真的想知道答案。
谢谢,
答案 0 :(得分:1)
zipmap采用两个序列,一个包含所有键,另一个包含所有值。它生成一个映射,其中每个键与另一个列表中相同位置的值匹配
user> (zipmap [:list :map :vector :set] [`() {} [] #{}])
{:set #{}, :vector [], :map {}, :list ()}
在这种情况下,系统会要求您提供一系列关键字和一系列不同类型集合的空示例,以便为集合示例生成关键字映射。