我有一個包含一些表單的文件,例如Clojure宏從文件「插入」代碼
(clojure.core/defn x [] (clojure.core/+ 5 7))
(clojure.core/defn y [a] (clojure.core/+ a 5))
我希望在運行時將其「插入」另一個Clojure代碼文件。
大概我可以用宏來做到這一點。我試過編寫一個讀取文件的宏,並在字符串上調用load-string
,但這會導致表單在宏中被直接評估。
即上面給出的文件,我想
(some-other-code) ...
(my-macro)
(some-more-other-code)
擴大到
(some-other-code) ...
(clojure.core/defn x [] (clojure.core/+ 5 7))
(clojure.core/defn y [a] (clojure.core/+ a 5))
(some-more-other-code)