Sorting Clojure向量映射中的向量排序

Sorting Clojure向量映射中的向量排序,sorting,vector,clojure,Sorting,Vector,Clojure,我有一张矢量图,像这样: {2 ["a" "c" "b"], 1 ["z" "y" "x"]} {1 ["x" "y" "z"], 2 ["a" "b" "c"]} 我想得到一个按键排序的地图,然后每个对应的向量也被排序,如下所示: {2 ["a" "c" "b"], 1 ["z" "y" "x"]} {1 ["x" "y" "z"], 2 ["a" "b" "c"]} 我知道我可以通过执行(进入(已排序的地图)地图),按键排序,我知道我可以提供一个传感器到进入,但我不知道传感器应该是什

我有一张矢量图,像这样:

{2 ["a" "c" "b"], 1 ["z" "y" "x"]}
{1 ["x" "y" "z"], 2 ["a" "b" "c"]}
我想得到一个按键排序的地图,然后每个对应的向量也被排序,如下所示:

{2 ["a" "c" "b"], 1 ["z" "y" "x"]}
{1 ["x" "y" "z"], 2 ["a" "b" "c"]}
我知道我可以通过执行
(进入(已排序的地图)地图)
,按键排序,我知道我可以提供一个传感器到
进入
,但我不知道传感器应该是什么样子。这是我试过的一个传感器:

(defn xform [entry]
  (vector (first entry) (vec (sort (second entry)))))
但是,当我尝试将其应用于地图时,会出现以下异常:

java.lang.IllegalArgumentException: Don't know how to create ISeq from: clojure.core$conj__4345
我怎样才能让它工作?有没有更好的方法将
与传感器一起使用到
中?

如下:

(into (sorted-map)
      (map (fn [[k v]] [k (vec (sort v))]))
      {2 ["a" "c" "b"], 1 ["z" "y" "x"]})

你差点就成功了。您没有使用
map
功能创建
map
传感器<代码>(映射变换)
,但您不应该将此函数称为变换,因为它还不是传感器,只是一个函数。