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的第一个参数都是函数调用,除非它被引用为列表)