我有一个向量图,就像这样:
{2 ["a" "c" "b"], 1 ["z" "y" "x"]}
我希望得到一个按键排序的地图,然后每个对应的向量也被排序,就像这样:
{1 ["x" "y" "z"], 2 ["a" "b" "c"]}
我知道可以通过 (into (sorted-map) themap)
按键排序,也知道可以向 into
提供一个转换器,但是我不确定转换器应该具体如何编写。这是我尝试的一个转换器:
(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
,还有更好的方法吗?
map
函数来创建一个map
转换器。(map xform)
,虽然你不应该称这个函数为xform,因为它还不是一个转换器,仅仅是一个函数而已。 - ClojureMostly