On Fri, Sep 25, 2009 at 8:48 PM, Constantine Vetoshev <[email protected]>wrote:

>
> On Sep 25, 6:02 pm, John Harrop <[email protected]> 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 [email protected]
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to