Re: Confusion with doc macro

2011-10-31 Thread Mark Rathwell
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)

Re: Confusion with doc macro

2011-10-31 Thread Sean Devlin
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

Re: Confusion with doc macro

2011-10-31 Thread Mark Rathwell
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

Re: Confusion with doc macro

2011-10-31 Thread Sean Devlin
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

Re: Confusion with doc macro

2011-10-31 Thread Mark Rathwell
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)