여기 내가 처음 일을 macroexpanding에 clojure는 컴파일 할 때 코드를 어떻게 평가합니까?
(defmacro hello [x] (eval '(+ 1 2)))
&
(defmacro hello [x] '(+ 1 2))
(+ 1 2)
를 얻고, 두 번째 macroexpanding 동안, 나는 값 3을 얻는다. 이것은 컴파일 타임에 추가 된 것을 의미합니까? 어떻게 가능할까요?
'(+ 1 2)
대신 db를 쿼리하는 함수를 작성했으면 어떨까요? 그것은 컴파일 타임에 DB를 쿼리합니까?
지금 나는 힘을 본다 : D –