title: Difference between Clear and Remove in Mathematica
body: <p>In Mathematica, the documentation for <a href="http://reference.wolfram.com/mathematica/ref/ClearAll.html" rel="noreferrer">ClearAll</a> states:</p>
  
  <blockquote>
    <p><code>ClearAll[symb1, symb2, ...]</code><br>
    clears values, definitions, attributes, messages, and defaults with symbols.</p>
  </blockquote>
  
  <p>It also supports a similar format where it can clear any values / definitions which match an input string pattern:</p>
  
  <pre><code>ClearAll["form1", "form2", ...]
  </code></pre>
  
  <p>But there's also the function <a href="http://reference.wolfram.com/mathematica/ref/Remove.html" rel="noreferrer">Remove</a>, for which the documentation says:</p>
  
  <blockquote>
    <p><code>Remove[symbol1, ...]</code><br>
    removes symbols completely, so that their names are no longer recognized by Mathematica.</p>
  </blockquote>
  
  <p>It also supports the same pattern based string input that <code>ClearAll</code> supports.</p>
  
  <p>To me, it seems like both functions accomplish the same exact thing. Is there any practical difference to using one or the other?</p>
  
  <p>I know that if I give an attribute to a symbol, <code>Clear</code> won't remove it but <code>ClearAll</code> and <code>Remove</code> will. But it seems like <code>Remove</code> and <code>ClearAll</code> are doing the same thing.</p>