私は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グラフ作成スクリプトを実装する方法は、常にpntsのようになります。私の質問は、コマンドのような並べ替えの好みを保証することができますか?
PS私は(並べ替え(juxt最後に最初)(juxt> <)pnts)をやってみました。私は結果が任意の入力順のための安定していることを確認するために入力をシャッフルしている
私は_comp_も_juxt_も使い慣れていません - これはノードが最後に下降してから最初の昇順にソートするのでしょうか?あなたの例はそれをそのまま示していますが、私はそれが確実であることを望んでいます(この例題が何をしているのかわかりません)。 – user2958652
他の質問では、騒音師は答えません。両方のおかげで、正直のためにnoisesmithに感謝:)私はさらに_juxt_と_comp_の両方を研究します。 – user2958652