Each Var in Clojure has: name metadata.
user> (def my-var {})
However, as a rule, if you already have Var, then you already know the name anyway, and usually you do not use Vars in the program (i.e. you just pass my-var or my-fun, not # -var and # 'my-fun).
There is nothing to get a Var (or var-name) function or value that turns out to be the value of some Var. Var knows its value, but not vice versa. This, of course, makes sense, because, for example, the function itself can be a value of zero (for local functions) or several vars.
source share