【发布时间】:2013-03-24 15:50:56
【问题描述】:
如何编写函数来解析词法环境中的符号?
(let [foo some-var]
(let [sym 'foo]
(resolve-sym sym)))
我想获取 'foo 绑定到的 var。
【问题讨论】:
-
我们不会创建新的变量,所以基本上你无法解决它们
-
但是可以使用 &env 获取宏内部的环境。
-
@navgeet,不,这是不可能的。
(defmacro m [x & env] '(x env))将以这种方式扩展:(m 1 2 3 4 5) -> '(1 (2 3 4 5)),即& env将允许您访问可变参数。 Clojure 中无法获取当前的词法环境。 -
@VladimirMatveev,navgeet 不是在谈论可变参数。 blog.jayfields.com/2011/02/clojure-and.html
-
@navgeet:您能发布您要解决的问题吗?可能有更好的方法来做到这一点