Previous Up Next

4.6  Matching

In ECLiPSe you can write clauses that use matching (or one-way unification) instead of head unification. Such clauses are written with the ?- functor instead of :-. Matching has the property that no variables in the caller will be bound. For example
p(f(a,X)) ?- writeln(X).
will fail for the following calls:
?- p(F).
?- p(f(A,B)).
?- p(f(A,b)).
and succeed (printing b) for
?- p(f(a,b)).
Moreover, the clause
q(X,X) ?- true.
will fail for the calls
?- q(a,b).
?- q(a,B).
?- q(A,b).
?- q(A,B).
and succeed for
?- q(a,a).
?- q(A,A).

Previous Up Next