title: Calling Clojure functions using var-quote syntax
body: <p>Occasionally when looking at other people's Clojure code, I see a function defined via <code>defn</code> and then called using the var-quote syntax, e.g.:</p>
  
  <pre><code>user&gt; (defn a [] 1)
  #'user/a
  user&gt; (a)   ; This is how you normally call a function
  1
  user&gt; (#'a) ; This uses the var-quote syntax and produces the same result
  1
  </code></pre>
  
  <p>For the life of me I can't figure out the difference between these two ways of calling a function. I can't find anything in the <a href="http://clojure.org/evaluation" rel="noreferrer">evaluation</a> documentation to say what happens when the operator of a call is a var that might suggest why the second form would be preferred. They both seem to respond in the same to <code>binding</code> assignments and syntax-quoting.</p>
  
  <p>So, can somebody please provide a code sample that will illustrate the difference between <code>(a)</code> and <code>(#'a)</code> above?</p>
  
  <p><strong>Edit:</strong> I know that var-quote can be used to get to a var that's shadowed by a <code>let</code> lexical binding, but that doesn't seem to be the case in the code that I'm looking at.</p>