不同的排序方式一键 Clojure

Azd*_*325 1 clojure

嘿,我有这个代码,但我只想反转 :a 键。

(sort-by (juxt :a :b) [{:a 1 :b 3} {:a 1 :b 2} {:a 2 :b 1}])
;;=> [{:a 1 :b 2} {:a 1 :b 3} {:a 2 :b 1}]
Run Code Online (Sandbox Code Playgroud)

我试过这个,但这是错误的顺序。

(sort-by (juxt :a :b) #(compare %2 %1)  [{:a 1 :b 3} {:a 1 :b 2} {:a 2 :b 1}])
;;=> ({:a 2, :b 1} {:a 1, :b 3} {:a 1, :b 2})
Run Code Online (Sandbox Code Playgroud)

我想得到。

;;=> ({:a 2, :b 1} {:a 1, :b 2} {:a 1, :b 3})
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?我也可以这样做吗?

ako*_*ond 5

(sort-by (juxt (comp - :a) :b) [{:a 1 :b 3} {:a 1 :b 2} {:a 2 :b 1}])
Run Code Online (Sandbox Code Playgroud)