process(X,Y):-the underscores refer to different unnamed variables. For example, here are two versions of member/2.generate(_,Z),
test(_,Z),
evaluate(Z,Y).
member(X,[XY]).
member(X,[Y
Z]):-
member(X,Z).
member(X,[X
_]).
member(X,[_
Z]):-
member(X,Z).
Note that, in the clause,
know_both_parents(X):-the underscores do not refer to the same object. The reading is roughly that ``we know both the parents of X if someone(name unimportant) is the mother of X and someone else (unimportant) is the father''. Note that Prolog regards the two occurrences of the anonymous variable in the above as different variables.mother(_,X),
father(_,X).