ok you're right, it's impossible to get the var since those x and y are already resolved to the function, and multiple vars could point to the same function anyway. => (let [x assoc y x] (get-lexical-env) ) {x #<core$assoc clojure.core$assoc@35fcd90c>, y #<core$assoc clojure.core$assoc@35fcd90c>}
for consistency, ignore the following: ;the following is inspired from http://blog.jayfields.com/2011/02/clojure-and.html (defmacro get-lexical-env [] " => (let [a 1 b (+ 1 2)] (let [c (do \"a\" \"b\")] (q/get-lexical-env) ) ) {a 1, b 3, c \"b\"} " (let [envkeys (keys &env)] `(zipmap (quote ~envkeys) (list ~@envkeys)) ) ) (defmacro show-lexical-env [] `(clojure.pprint/pprint (get-lexical-env)) ) On Sun, Mar 3, 2013 at 1:05 PM, AtKaaZ <atk...@gmail.com> wrote: > that's true but I thought you meant in general > basically, I'm looking for a way to get the var... ie. > => (let [x assoc > y x] > *(var y)* > ) > CompilerException java.lang.RuntimeException: Unable to resolve var: y in > this context, compiling:(NO_SOURCE_PATH:3:3) > > => (let [x assoc > y x] > y > ) > #<core$assoc clojure.core$assoc@35fcd90c> > => (var assoc) > #'clojure.core/assoc > > > something that can replace that (var y) with something that actually gets > the var that y resolves to. > > > > On Sun, Mar 3, 2013 at 12:58 PM, Dave Sann <daves...@gmail.com> wrote: > >> I think, that will only work if you do it directly. >> >> It will not work in the example I gave. >> >> Dave >> >> >> On Sunday, 3 March 2013 22:43:14 UTC+11, AtKaaZ wrote: >>> >>> >>> >>> >>> On Sun, Mar 3, 2013 at 12:21 PM, Dave Sann <dave...@gmail.com> wrote: >>> >>>> This may be a question for clojure dev >>>> >>>> I find myself wanting to be able to print data-structures containing >>>> resolvable functions >>>> >>>> e.g. >>>> >>>> (let [x assoc] (str [x :a :b])) >>>> >>>> would be: >>>> >>>> "[#fn clojure.core/assoc :a :b]" >>>> >>>> or similar, rather than the current: >>>> >>>> "[#<core$assoc clojure.core$assoc@6d289e48> :a :b]" >>>> >>>> which is unreadable. >>>> >>>> I can read this tag very easily, using the data-reader >>>> >>>> {fn resolve} or, >>>> >>>> (set! *data-readers* {'fn resolve}) >>>> >>>> >>>> >>>> But I don't know of any way to get the name and namespace of a function >>>> to write it out. >>>> >>> Did you mean this? >>> => (meta #'assoc) >>> {:ns #<Namespace clojure.core>, :name assoc, :arglists ([map key val] >>> [map key val & kvs]), :column 1, :added "1.0", :static true, :doc >>> "assoc[iate]. When applied to a map, returns a new map of the\n same >>> (hashed/sorted) type, that contains the mapping of key(s) to\n val(s). >>> When applied to a vector, returns a new vector that\n contains val at >>> index. Note - index must be <= (count vector).", :line 177, :file >>> "clojure/core.clj"} >>> >>> >>>> I think this is not possible at the moment. >>>> >>>> >>>> Anyone? >>>> >>>> Thanks >>>> >>>> Dave >>>> >>>> -- >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Clojure" group. >>>> To post to this group, send email to clo...@googlegroups.com >>>> >>>> Note that posts from new members are moderated - please be patient with >>>> your first post. >>>> To unsubscribe from this group, send email to >>>> clojure+u...@**googlegroups.com >>>> >>>> For more options, visit this group at >>>> http://groups.google.com/**group/clojure?hl=en<http://groups.google.com/group/clojure?hl=en> >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "Clojure" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to clojure+u...@**googlegroups.com. >>>> >>>> For more options, visit >>>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out> >>>> . >>>> >>>> >>>> >>> >>> >>> >>> -- >>> Please correct me if I'm wrong or incomplete, >>> even if you think I'll subconsciously hate it. >>> >>> -- >> -- >> 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 >> Note that posts from new members are moderated - please be patient with >> your first post. >> 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 >> --- >> You received this message because you are subscribed to the Google Groups >> "Clojure" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to clojure+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> > > > > -- > Please correct me if I'm wrong or incomplete, > even if you think I'll subconsciously hate it. > > -- Please correct me if I'm wrong or incomplete, even if you think I'll subconsciously hate it. -- -- 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 Note that posts from new members are moderated - please be patient with your first post. 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 --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.