Clojure解构返回奇怪的事情

时间:2015-07-23 13:55:02

标签: clojure

这里发生了什么:

(defn what [[a]]
  (print a b))

现在,如果我致电(what "abid"),我会:

a [1 2 3 4 5]

这是从哪里来的?这些数字是多少?

2 个答案:

答案 0 :(得分:0)

在定义此功能之前,您确定 b ,否则您将获得

CompilerException java.lang.RuntimeException: Unable to resolve symbol: b in this context, compiling:(NO_SOURCE_PATH:4:3)

在新的clojure repl中尝试使用其他内容的代码。 b 是这些神奇数字的来源。

E.G:

(def b 5)
(defn what [[a]]
(print a b))
(what "abc")
a 5nil

答案 1 :(得分:0)

假设b在某处定义为[1 2 3 4 5],这正是我所期望的。由于b在您提供的代码中未定义,我们只能假设是这种情况。

awhat的第一个参数的第一个元素。对于(what "abcd"),这是小写字符" a"。