작동하지 내가이 작업을 수행 할 수 있습니다평가는 커먼 리스프에서 확장되지 않은 매크로 인용
src-> (defmacro 매크로 안녕하세요() ` "안녕하세요")
(평가 '(매크로 안녕하세요))
아무런 문제가 없습니다. Clojure에있어서
:
(defmacro 매크로 헬로 [] ` "안녕하세요")
(평가 '(매크로 헬로))
내게 오류 준다. 내가 잘못 했니?
Clojure의 오류 : 스레드
예외 "주"의 java.lang.Exception : 기호를 확인할 수 없습니다 :이 상황에서 매크로 안녕을 (NO_SOURCE_FILE : 12) clojure.lang.Compiler.analyze (컴파일러에서 .java : 4340) at clojure.lang.Compiler.analyze (Compiler.java:4286) at clojure.lang.Compiler $ InvokeExpr.parse (Compiler.java:2767) at clojure.lang.Compiler.analyzeSeq (컴파일러 .java : 4498) at clojure.lang.Compiler.analyze (Compiler.java:4325) at clojure.lang.Compiler.analyze (Compiler.java:4286) at clojure.lang.Compiler $ BodyExpr $ Parser.parse (Comp iler.java : 3862) at clojure.lang.Compiler $ FnMethod.parse (Compiler.java:3697) at clojure.lang.Compiler $ FnMethod.access $ 1100 (Compiler.java:3574) at clojure.lang.Compiler clojure.lang.Compiler에서 clojure.lang.Compiler.analyze (Compiler.java:4325) 에서 clojure.lang.Compiler.analyzeSeq (Compiler.java:4494) 에서 $ FnExpr.parse (Compiler.java:2963) .eval (Compiler.java:4530) at clojure.core $ eval__3990.invoke (core.clj : 1728) at com.yourcompany.defpackage $ _main__4.invoke (defpackage.clj : 12) at clojure.lang.AFn (AFn.java:161) at com.yourcompany.defpackage.main발생 원인 : java.lang.Exception :이 컨텍스트에서 symbol : macro-hello를 확인할 수 없습니다. at clojure.lang.Compiler.resolveIn (Compiler.java:4682) at clojure.lang.Compiler.resolve (Compiler.java : 4628) clojure.lang.Compiler.analyzeSymbol (Compiler.java:4605에서 ) clojure.lang.Compiler.analyze (Compiler.java:4307) 에서 17 ... 더 자바 결과 : 1
[편집 됨] : 더하기 닫는 큰 따옴표 추가
macro-hello를 정의한 네임 스페이스는 무엇입니까? 보십시오 (eval '(<여기에 네임 스페이스를 삽입하십시오/매크로 안녕하세요)). 그게 효과가 있니? – alanlcode
alancode 땡 그거. – Gutzofter