_
is called the anonymous
variable. Multiple occurrences of _
in a single term
are not shared.
myterm(A1, a2)
.
:-
).
:-
) or it is a
fact. For example:
parent(X) :- father(X, _). |
Expressed ``X is a parent if X is a father of someone''. See also variable and predicate.
john
is
a person.
person(john). |
foo(a, b, c)
is said to be a term belonging to the functor foo/3.
foo/0 is used to refer to the atom foo
.
:-
) separating head
from body in a clause.
In Prolog, the expression a+b
is exactly the same as the
canonical term +(a,b)
.
a+b*c
as +(a, *(b,c))
.
?- A = B, A = a. A = a, B = a |
_
(see anonymous) or make sure
the first character is a _
. See also the style_check/1
option singletons
.
?- foo(a, B) = foo(A, b). A = a, B = b |
Unlike assignment (which does not exist in Prolog), unification is not directed.
?- A = b, A = c. No ?- (A = b; true; A = c). A = b ; A = _G283 ; A = c ; No |
See also unify.