On 11/13/2012 11:06 AM, Johannes wrote:
I define a record
(defrecord point [x y])
and the following macro:
(defmacro drg
[typename components]
`(def ~(symbol (str typename "-" (str (first components))))
(fn [~(symbol "obj")] (get ~(symbol "obj") ~(symbol (str ":" (str
(first components))))))))
But calling the macro results in an error message:
user> (drg point [x y])
CompilerException java.lang.RuntimeException: Unable to resolve symbol:
:x in this context, compiling:(NO_SOURCE_PATH:1)
Can anyone tell me what my mistake is?
I guess the problem is that you created :x using symbol, so it is not
recognized as a key.
But the whole approach, starting with creating names to def to inside a
macro, is troublesome. This makes it hard to follow what's going on. If
you provide a larger context of what you are trying to accomplish, I'm
sure someone can suggest a much better approach.
--
Thorsten Wilms
thorwil's design for free software:
http://thorwil.wordpress.com/
--
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