我的问题是 Clojure 程序源代码元数据是否存在,是否易于访问?
我正在考虑编写一个函数包装器,它可以接受一个要调用的函数、一个调试标志和任意文本(例如,源代码中的调用位置)以在设置调试标志时打印。清除后,只会调用该函数。
我想知道是否可以从当前运行的函数中收集到,而不是硬编码一个位置。我不知道这样的信息是否可用。否则,我当然可以在调用该函数的任何位置提供任意位置信息。
以下是此类函数的示例:
(defn test-fn
[]
(println "This is a test function."))
(defn fn-call-loc
[fn dbg-flag & locate-info]
(if (= 1 dbg-flag)
(println locate-info))
(fn))
repl-test.core=> (fn-call-loc test-fn 1 "Called from main.")
(Called from main.)
This is a test function.
nil
repl-test.core=>
我的问题不是我的硬编码“从主调用。”,是否有关于调用 fn-call-loc 位置位置的可用元数据?
谢谢。