It uses (meta (var common/basic-logger)).
On Mon, Oct 31, 2011 at 2:28 PM, Sean Devlin francoisdev...@gmail.com wrote:
I'm a bit confused by what the doc macro is doing. Doesn't it simply
work of the metadata of what is passed to it?
I try this at the REPL:
user= (doc common/basic-logger)
Okay, then I need a hand with something then. I'm trying to come up
with a macro that does the following:
(defmacro def-with-meta ...) - You supply this
(def-with-meta symbol init)
(= (meta (var symbol)) (meta init)) - True
Any suggestions folks?
Sean Devlin
On Oct 31, 2:59 pm, Mark
def already adds metadata on the symbol as metadata on the var. Did
you need more than this (below)?
user (def ^{:doc foo} x [1 2 3])
#user/x
user (meta (var x))
{:ns #Namespace user, :name x, :doc foo, :line 1, :file NO_SOURCE_FILE}
user (doc x)
-
user/x
foo
nil
No, I'm looking for a copy meta routine.
The mysterious defmeta macro does this, in one call.
(defmeta a map)
(= (meta (var a)) (meta map))
On Oct 31, 4:20 pm, Mark Rathwell mark.rathw...@gmail.com wrote:
def already adds metadata on the symbol as metadata on the var. Did
you need more than
No, I'm looking for a copy meta routine.
The mysterious defmeta macro does this, in one call.
(defmeta a map)
(= (meta (var a)) (meta map))
This will do what you want, but I would not advise using it:
(defmacro def-with-meta [symbol init]
`(let [m# (meta ~init)]
(def ~symbol ~init)