title: What is the difference between the keyword is and = in prolog?
body: <p>I'd appreciate it if someone could elaborate on the difference between the <code>is</code> keyword and the = operator in prolog. I saw this discussion in <a href="https://stackoverflow.com/questions/8219555/what-is-the-difference-between-and-in-prolog">== and =</a>, but it excludes <code>is</code>. The documentation talks about an unclear to me "unbound left operand." Can anyone elaborate? </p>
  
  <p>I have a following example of <code>is</code>: </p>
  
  <pre><code>age(Person,X) :-
  birth_year(Person,Y1),
  current_year(Y2),
  X is Y2-Y1. 
  </code></pre>
  
  <p>Is the difference assignment vs comparison? Any help is appreciated! </p>
  
  <p>Edit: What is the relationship between == and <code>is</code>? I am not asking the relationship of == and =, unless I have a misunderstanding of the aforementioned relationship.  </p>