title: what does ~' imply when added as a prefix to a variable in macro
body: <p>Given the macro below - </p>
  
  <pre><code>(defmacro defhello [fn-name body]   `(defn ~fn-name [~'name] ~body))
  </code></pre>
  
  <p>and a function defined when called as - </p>
  
  <blockquote>
    <p>(defhello greeting (str "Hello" name))</p>
  </blockquote>
  
  <p>and called as </p>
  
  <blockquote>
    <p>(greeting "Joe")</p>
  </blockquote>
  
  <p>, will return </p>
  
  <p><code>Hello Joe</code></p>
  
  <p>I do not understand the usage of ~' in front of the <em>name</em> parameter? What does it do? Don't quote (') and unquote (~) cancel each other? What happens when they are used together? Why not just write <em>name</em> without them?</p>