In common lisp I can do this:

src-> (defmacro macro-hello () `"hello")

(eval '(macro-hello))

no problem.

In clojure:

(defmacro macro-hello [] `"hello")

(eval '(macro-hello))

gives me an error. Have I done something wrong? After further
investigation I found that a pre-defined macro/function works just
fine.

(eval '(= 0 0))

Any macro/function i define doesn't.

Clojure Error:

Exception in thread "main" java.lang.Exception: Unable to resolve
symbol: macro-hello in this context (NO_SOURCE_FILE:12)
        at clojure.lang.Compiler.analyze(Compiler.java:4340)
        at clojure.lang.Compiler.analyze(Compiler.java:4286)
        at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:2767)
        at clojure.lang.Compiler.analyzeSeq(Compiler.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(Compiler.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$FnExpr.parse(Compiler.java:
2963)        at clojure.lang.Compiler$FnExpr.parse(Compiler.java:2963)

        at clojure.lang.Compiler.analyzeSeq(Compiler.java:4494)
        at clojure.lang.Compiler.analyze(Compiler.java:4325)
        at clojure.lang.Compiler.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.applyToHelper(AFn.java:171)
        at clojure.lang.AFn.applyTo(AFn.java:164)
        at com.yourcompany.defpackage.main(Unknown Source)
Caused by: java.lang.Exception: Unable to resolve symbol: macro-hello
in this context
        at clojure.lang.Compiler.resolveIn(Compiler.java:4682)
        at clojure.lang.Compiler.resolve(Compiler.java:4628)
        at clojure.lang.Compiler.analyzeSymbol(Compiler.java:4605)
        at clojure.lang.Compiler.analyze(Compiler.java:4307)
        ... 17 more
Java Result: 1



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to