I want to write a macro that runs a 'defstruct' using a list of names,
like below:

;; My tag names
(def tags '("name" "age"))

;; The macro
(defmacro def-fields [name  tgs]
  `(defstruct ~name ~@(map #(symbol (str ":" %)) tgs))
)

;; Using the macro to define a struct based on 'tags'
(def-fields fs tags)

;; Create an instance of the struct
(def testfs (struct fs "Peter" "5"))

;; end


It fails with:

(def-fields fs tags)

java.lang.RuntimeException: java.lang.RuntimeException:
java.lang.RuntimeException: java.lang.IllegalArgumentException: Don't
know how to create ISeq from: Symbol (NO_SOURCE_FILE:8)


What do I do wrong here?


Per

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