2

为什么以下函数在 Clojure 中不起作用:

(defn tests
  [] 0
  [a b] 1)

它给出了以下错误:clojure.lang.Compiler$CompilerException: java.lang.RuntimeException: Unable to resolve symbol: a in this context

4

2 回答 2

8

每个都需要用括号括起来

(defn tests 
  ([] 0) 
  ([a b] 1))
于 2013-07-04T19:07:23.793 回答
0

如果您想要超过 2 倍的 var,请使用& more:

(defn maxz
  "Returns the greatest of the nums."
  ([x] x)
  ([x y] (if (> x y) x y))
  ([x y & more]
   (reduce maxz (maxz x y) more)))

(最大 1 2 3 4 5 100 6)

=> 100

于 2019-12-28T11:08:07.500 回答