私の質問は、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=>
私の質問は、ハードコーディングされた「Called from main。」ではなく、fn-call-locへの呼び出しの場所での位置に関する利用可能なメタデータはありますか?
ありがとう。