title: How does = operator works in Prolog
body: <p>Sorry if this is a newbie question, but recently I was trying to compare an string and I used this (not exactly :P):</p>
  
  <pre><code>some_fact('Yes').
  some_fact('No').
  
  some_rule(X):- some_fact(X), (X =:= 'Yes' -&gt; writeln("ISS YES") ; writeln("No")).
  </code></pre>
  
  <p><strong>Error:</strong> Arithmetic: `'Yes'' is not a function</p>
  
  <p>After that, I Googled and saw that Strings are compared with <strong>=</strong> and <strong>\=</strong></p>
  
  <p>But if I write: X = 5 I'm assigning the value 5 to X, well I don't know if the word is assign, cause the assigment operator is <strong>is</strong>. Right?</p>
  
  <p>Just in case, I don't need to fix the code, I want understand what's happening.
  Thanks</p>