我想以特定方式对Clojure列表(或seq,如果这就是它所谓的)进行排序。我想按降序排列最后一项的优先级,然后按升序排序第一项。举个例子:在Clojure中排序列表
(def pnts '((1 2)
(2 4)
(3 2)
(4 10)
(5 3)
(6 1)
(7 2)))
(sort-by last > pnts)
;; ((4 10) (2 4) (5 3) (1 2) (3 2) (7 2) (6 1))
;; Notice how (1 2), (3 2), (7 2) are sorted. This
;; is correct and is what I want.
的(排序由过去的)似乎做的伎俩,虽然这可能是因为点最初由第一项目排序。我正在执行ASCII/CLI图形脚本的方式,我写的点总是会被订购,如分机是。我的问题是什么是一个命令,可以保证这样的排序偏好?
PS我试过(juxt last last)(juxt> <)pnts)但无济于事。
我对_comp_和_juxt_都不太熟悉 - 请问这种排序方式会在最后一个降序,然后是第一个升序吗?你的例子显示它是这样的,但我想确定它会(我不明白这个例子在做什么)。 – user2958652
不要介意noisesmith在另一个问题中回答。感谢这两者,并感谢noisesmith的诚实:)我将进一步研究_juxt_和_comp_。 – user2958652