【发布时间】:2016-11-12 06:45:19
【问题描述】:
我有一张矢量地图,如下所示:
{2 ["a" "c" "b"], 1 ["z" "y" "x"]}
我想得到一个按key排序的map,然后每个对应的vector也排序,像这样:
{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,因为它还不是转换器,而只是一个函数。