Clojure编译问题

时间:2012-07-26 09:30:31

标签: clojure

为什么以下代码无法通过编译?

(defn testit [asym] (var asym))

错误是:

CompilerException java.lang.RuntimeException: Unable to resolve var: asym in this context, compiling:(NO_SOURCE_PATH:1)

1 个答案:

答案 0 :(得分:2)

asym没有var,它是本地的;在这种情况下,您定义的函数的唯一参数是testit var的值。

如果您想从该功能返回asym

(defn testit [asym] asym)

如果asym是一个用于命名要返回的var的符号,请使用resolve

(defn testit [asym] (resolve asym))

一般说明:(var x)是与阅读器语法#'x对应的展开special form