title: Difference between == and === in Mathematica
body: <p>I was under the impression that <code>=</code> is an assignment, <code>==</code> is a numeric comparison, and <code>===</code> is a symbolic comparison (as well as in some other languages <code>==</code> being <code>equal to</code> and <code>===</code> being <code>identical to</code>. However, looking at the following it would appear that this is not necessarily the case...</p>
  
  <pre><code>In: x == x
  Out: True
  
  In: x === x
  Out: True
  
  In: 5 == 5
  Out: True
  
  In: 5 === 5
  Out: True
  
  In: x = 5
  Out: 5
  
  In: 5 == x
  Out: True
  
  In: 5 === x
  Out: True
  
  In: 5 5 == 5x
  Out: True
  
  In: 5 5 === 5x
  Out: True
  
  In: x == y
  Out: x == y
  
  In: x === y
  Out: False
  
  In: y = x
  Out: 5
  
  In: x == y
  Out: True
  
  In: x === y
  Out: True
  </code></pre>
  
  <p>So what exactly is the difference between == and === in Mathematica? I have been looking at the documentation but I still don't quite understand it.</p>