Clojure 带多值键的zipmap

Clojure 带多值键的zipmap,clojure,zipmap,Clojure,Zipmap,以下是: (zipmap '(:a :b :c :c) '(1 2 3 4)) 求值到:{:c4,:b2,:a1} 我想得到: {:c '(3 4) :b '(2) :a '(1)} 相反 我应该如何定义我自己的zipmap,它接受两个列表并返回一个包含多个键值的映射?这样就可以了 (defn zippy [l1 l2] (apply merge-with concat (map (fn [a b]{a (list b)}) l1 l2))) ;;; ⇒ #'use

以下是:

(zipmap '(:a :b :c :c) '(1  2  3  4))
求值到:
{:c4,:b2,:a1}

我想得到:

{:c '(3 4) :b '(2) :a '(1)}
相反

我应该如何定义我自己的
zipmap
,它接受两个列表并返回一个包含多个键值的映射?

这样就可以了

(defn zippy [l1 l2]
  (apply merge-with concat (map (fn [a b]{a (list b)}) l1 l2)))
        ;;; ⇒ #'user/zippy

(zippy '(:a :b :c :c) '(1  2  3  4))
        ;;; ⇒ {:c (3 4), :b (2), :a (1)}