On Fri, Sep 25, 2009 at 8:48 PM, Constantine Vetoshev <gepar...@gmail.com>wrote:

>
> On Sep 25, 6:02 pm, John Harrop <jharrop...@gmail.com> wrote:
> > I don't think you can use things like defmacro in a let.
>
> This works:
>
> (let [y 10]
>  (defmacro m1 []
>    `(list ~y)))
>
> (m1) =>
> (10)


Well, that's weirdly inconsistent. It shouldn't work just *some* of the
time. Either it should work, or it shouldn't work. According to the language
semantics, it should work if let bindings wrapping def forms are in effect
during any side effects of the def form, and should fail otherwise.

Anyone knowledgeable about clojure internals have any idea why it would work
sometimes, but only sometimes?

Did you get a detail message or stack trace from the exception you saw?

--~--~---------~--~----~------------~-------~--~----~
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