如何在Clojure中重新实现`zipmap`?

时间:2017-11-27 17:56:08

标签: clojure

作为练习,我试图重新实施zipmap。以下语句工作正常,它接受键和值并将它们转换为映射:

user=> (into {} (mapv vector [:a :b] [1 2]))
{:a 1, :b 2}

但是,当我尝试将上述语句转换为函数时,我遇到了问题:

user=> ((fn [& xs] (into {} (mapv vector xs))) [:a :b] [1 2])
IllegalArgumentException Vector arg to map conj must be a pair 
Clojure.lang.ATransientMap.conj (ATransientMap.java:37)

我的实施有什么问题以及为什么会发生?

0 个答案:

没有答案