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).