我正在尝试读取 Clojure 中函数集合的元数据,但 var 或 reader 特殊形式不起作用,除非它们直接处理符号。
; this works
(var my-fn)
; this doesn't
(defn val-it [x] (var x))
(val-it my-fn)
有什么方法可以让它在另一个函数的范围内工作吗?
最佳答案
resolve
返回当前命名空间上下文中给定符号对应的 Var 或类对象。 ns-resolve
允许您指定在哪个命名空间中解析符号。
(resolve 'my-fn)
;= #'some.ns/my-fn
如果符号无法解析为 Var,则返回 nil
。
关于clojure - 将 var 或 #' 应用于 Clojure 中的函数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23125246/