Clojure 将向量从较大值排序到较小值

Clojure 将向量从较大值排序到较小值,clojure,Clojure,如何将向量从较大的值排序到较小的值,因为这不起作用 (sort > ([3 1 2 4])) 但是,对贴图值使用是可行的 (sort > (vals {:foo 5, :bar 2, :baz 10})) ; => (10 5 2) 请注意,括号在clojure中总是很重要的,它们从不“只是分组”任意表达式([3 1 2 4])将向量作为函数调用,不带任何参数 您需要(sort>[3 1 2 4])这是因为您没有将向量传递给sort方法:) 正确的路线是: (sort &g

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

(sort > ([3 1 2 4]))
但是,对贴图值使用
是可行的

(sort > (vals {:foo 5, :bar 2, :baz 10}))
; => (10 5 2)

请注意,括号在clojure中总是很重要的,它们从不“只是分组”任意表达式
([3 1 2 4])
将向量作为函数调用,不带任何参数


您需要
(sort>[3 1 2 4])

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

正确的路线是:

(sort > [3 1 2 4])

([3 1 2 4])
应该给您一个
算术异常
,因为您试图将向量用作一个没有任何参数的函数。

在您的工作示例中,您正在对调用
(vals{:foo 5,…}
的返回值使用
,这是一个序列。看

排序在集合上工作(请参阅),因此向量[3 1 2 4]和序列一样有效

您的错误是,您试图通过在向量周围加括号来“运行”向量(请记住,任何s-exp的第一个参数都是函数调用,除非它被引用为列表)