Hi,

I have this macro (complete file https://www.refheap.com/paste/7633):

*(*defmacro defgreeter [greeter-name]

  *(*let [greeter *(*make-greeter*)*]

    `*(*do

       *(*defn ~greeter-name [user-name#]

         *(*~greeter user-name#*)**)**)**)**)*


It works as expected when make-greeter is defined like this:

*(*defn make-greeter []

  *(*fn [user-name]

    *(*str "Hello, " user-name*)**)**)*


I can use it like this:

*(*defgreeter hello*)*

*(*hello "jarppe"*)*

How ever, if I change make-greeter to this I get IllegalArgumentException:

*(*defn make-greeter []

  *(*let [message "hello"]

    *(*fn [user-name]

      *(*str message ", " user-name*)**)**)**)*


Interestingly, this does not work either:

*(*defn make-greeter []

  *(*constantly "what erver"*)**)*

What am I missing?

-- 
-jarppe

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