length(0,[]). length(N,[_|L]) :- length(M,L), N is M+1.Please define predicates member/2, fac/2, fib/2, and gcd/3 analogously.
f(1,one). f(s(1),two). f(s(s(1)),three). f(s(s(s(X))),N) :- f(X,N).How does Prolog answer to the following questions?
q1(X,Y) :- p(X,Y). q2(X,Y) :- p(X,Z), q2(Z,Y).
q1(X,Y) :- p(X,Z), q1(Z,Y). q2(X,Y) :- p(X,Y).
q3(X,Y) :- p(X,Y). q4(X,Y) :- q4(X,Z), p(Z,Y).
q3(X,Y) :- q3(X,Z), p(Z,Y). q4(X,Y) :- p(X,Y).
p(tom,bob).
p(tom,liz).
p(bob,ann).
p(bob,pat).
p(pat,jim).
Using answer trees please show how Prolog answers to the following questions:
?-qi(tom,pat). and ?-qi(liz,jim) for i = 1, ... 4.