Clojure简单排序函数错误

0xA*_*xAX 1 sorting function clojure

我是clojure的新手,我尝试创建函数,它将是排序集合并将其存储在对象中.

我的代码:

(defn uniq [ilist]
  ([] [])
  (def sorted (sort ilist))) 
Run Code Online (Sandbox Code Playgroud)

我尝试运行它:

(uniq '(1,2,3,6,1,2,3))
Run Code Online (Sandbox Code Playgroud)

但得到错误:

#<CompilerException java.lang.IllegalArgumentException: Key must be integer (NO_SOURCE_FILE:0)>
Run Code Online (Sandbox Code Playgroud)

怎么了?

谢谢.

ama*_*loy 5

与您的其他问题一样,您尝试使用模式匹配,但它不适用.如果你完全删除了你的功能将正常工作1([] []).

1你也不应该def在这里使用; 正如其他受访者所指出的那样,您希望let用于建立本地绑定.但是,这里根本不需要任何绑定:只返回sort调用的结果.实际上,def会导致您返回Var而不是实际的排序列表.