12
클로저에 함수가로드 된 후 함수 코드를 가져 오는 방법이 있습니까?클로저 함수 코드를 얻으십시오
e. [안된]
(defmacro blat [x] `(do (def code ~(quote (mexpand-all x)))
~x)))
(blat (defn func [abc] (...)))
클로저에 함수가로드 된 후 함수 코드를 가져 오는 방법이 있습니까?클로저 함수 코드를 얻으십시오
e. [안된]
(defmacro blat [x] `(do (def code ~(quote (mexpand-all x)))
~x)))
(blat (defn func [abc] (...)))
같은 일을하지 않고 당신은 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
hmm. (mexpand-all (read-string (source-fn 'foo))))는 내가 원하는 것에 관한 것이다. –