【发布时间】:2011-01-16 22:26:39
【问题描述】:
在函数加载后,clojure 中有没有办法获取函数的代码?
即。没有做类似[未经测试]的事情
(defmacro blat [x] `(do (def code ~(quote (mexpand-all x)))
~x)))
(blat (defn func [abc] (...)))
【问题讨论】:
标签: clojure
在函数加载后,clojure 中有没有办法获取函数的代码?
即。没有做类似[未经测试]的事情
(defmacro blat [x] `(do (def code ~(quote (mexpand-all x)))
~x)))
(blat (defn func [abc] (...)))
【问题讨论】:
标签: clojure
您可以使用clojure.repl/source 函数获取符号的来源。但是,这仅在符号解析为的 var 位于类路径上的 .clj 文件中时才有效。例如,您不能这样做:
user=> (defn foo [x] x)
#'user/foo
user=> (require 'clojure.repl)
nil
user=> (clojure.repl/source foo)
Source not found
nil
【讨论】: