Hi, Am 19.01.2009 um 19:15 schrieb David Nolen:
I've noticed this as well. It seems to me that this prevents you from dynamically defining a var (like in a macro) that has metadata attached to it or it's arguments (if it's a function). Is there no way around how the reader works? Can the reader delay processing #^ until after all macros have been expanded? Seems to me it could be useful behavior since one might want to dynamically create functions with tagged arguments and return values right?
In a macro you can do:1:20 user=> (defmacro foo [x] `(def ~(with-meta x (assoc (meta x) :foo :bar))))
nil 1:21 user=> (foo #^{:some :metadata} bar) #'user/bar 1:22 user=> (meta #'bar){:ns #<Namespace user>, :name bar, :file "repl-1", :line 21, :foo :bar, :some :metadata}
Sincerely Meikel
smime.p7s
Description: S/MIME cryptographic signature