【发布时间】:2014-03-14 07:15:46
【问题描述】:
我不清楚为什么在下面的代码 sn-p 中,foo 被定义在“用户”命名空间中,而不是我在绑定闭包中绑定到 *ns* 的那个。有人可以解释我缺少什么吗?
$ clj Clojure 1.4.0 user=> (let [nspace (create-ns (gensym "sandbox"))] (绑定 [*ns* nspace] (打印 (ns-name *ns*)) (def foo 6))) sandbox3#'用户/foo 用户=> foo 6 用户=> (in-ns 'sandbox3) # 沙盒3=> foo CompilerException java.lang.RuntimeException: Unable to resolve symbol: foo in this context, compile:(NO_SOURCE_PATH:0) sandbox3=> (def bar 7) #'sandbox3/栏 沙盒3=> 酒吧 7 sandbox3/user=> (in-ns '用户) # 用户=> foo 6 用户=>酒吧 CompilerException java.lang.RuntimeException:无法解析符号:此上下文中的 bar,正在编译:(NO_SOURCE_PATH:0)【问题讨论】:
标签: clojure