作为练习,我试图重新实施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)
我的实施有什么问题以及为什么会发生?