I recently wrote on my blog that using #' was a good way to make sure that you get the function definition you want despite the symbol being rebound within a let. For instance:
(let [list 10] (#'list 1 2 3)) => (1 2 3) cgrand responded (here: http://www.reddit.com/r/programming/comments/7tny8/the_beauty_of_lisp1/c07dce4) that this is not the preferred way, since it can be rebound using binding. Hence: (let [list 10] (binding [list +] (#'list 1 2 3))) => 6 He said that I should use clojure.core/list instead of #'list. That is, to reference it with a fully-qualified name. But my understanding is that binding still changes clojure.core/list withing the binding form. Here, from my REPL: (let [list 10] (binding [list +] (clojure.core/list 1 2 3))) => 6 So, my question is this: what is the difference/relationship between #' and the fully-qualified name? When should they be used? What are the standard idioms for using these? --~--~---------~--~----~------------~-------~--~----~ 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 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 -~----------~----~----~----~------~----~------~--~---