将矢量从较大的值排序到较小的值

use*_*828 -1 clojure

如何将矢量从较大的值排序到较小的值,因为这不起作用

(sort > ([3 1 2 4]))
Run Code Online (Sandbox Code Playgroud)

但是,使用>地图值它是有效的.

(sort > (vals {:foo 5, :bar 2, :baz 10}))
; => (10 5 2)
Run Code Online (Sandbox Code Playgroud)

Joo*_*aat 9

请注意,括号在clojure中总是很重要,并且它们永远不会"只对"任意表达式进行分组.([3 1 2 4])将vector作为函数调用,不带任何参数.

你要 (sort > [3 1 2 4])


and*_*zko 5

那是因为你没有将向量传递给sort方法:)

正确的行是:

(sort > [3 1 2 4])
Run Code Online (Sandbox Code Playgroud)

([3 1 2 4])应该给你一个,ArityException因为你试图使用矢量作为一个没有任何参数的函数.