Sometimes terms look different to us, but Prolog regards them as identical. For example, when we compare a
and 'a'
, we see two distinct strings of symbols, but Prolog treats them as identical. And in fact there are many other cases where Prolog regards two strings as being exactly the same term. Why? Because it makes programming more pleasant. Sometimes the notation Prolog likes isn't as natural, as the notation we would like. So it is nice to be able to to write programs in the notation we like, and to let Prolog run them in the notation it finds natural.