我想要对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.
< p > (sort-by last) 似乎起到了作用,尽管这可能是因为点最初按第一个项目排序。我正在实现的ASCII/CLI图形脚本的方式将始终按pnts的顺序排序。我的问题是有什么命令可以保证这样的排序偏好?
PS:我尝试过使用(sort-by (juxt last first) (juxt > <) pnts),但没有成功。