我想将以下代码段中的内部函数调用转换为使用#()
宏的内部函数调用:
(let [m {:a 3, :b 2, :c 4, :x 9, :y 0, :z 5}]
(into (sorted-map-by (fn [key1 key2]
(compare [(get m key2)]
[(get m key1)]))) m))
我对如何实现这一点感到有点困惑。
答案 0 :(得分:5)
在匿名函数中,参数由%1,%2 ...给出,因此您可以使用
(let [m {:a 3, :b 2, :c 4, :x 9, :y 0, :z 5}]
(into (sorted-map-by #(compare (get m %2)
(get m %1))) m))
请注意,您不需要将比较值包装在矢量中。