20 lines
475 B
Prolog
20 lines
475 B
Prolog
parent(tom, bob).
|
|
parent(tom, liz).
|
|
parent(bob, ann).
|
|
parent(bob, pat).
|
|
parent(pat, jim).
|
|
|
|
grandparent(X, Z) :- parent(X, Y), parent(Y, Z).
|
|
ancestor(X, Y) :- parent(X, Y).
|
|
ancestor(X, Y) :- parent(X, Z), ancestor(Z, Y).
|
|
|
|
:- initialization(main).
|
|
|
|
main :-
|
|
write('Grandparents of jim: '),
|
|
findall(X, grandparent(X, jim), Grandparents),
|
|
write(Grandparents), nl,
|
|
write('Ancestors of jim: '),
|
|
findall(X, ancestor(X, jim), Ancestors),
|
|
write(Ancestors), nl.
|