Reputation: 21
Imagine my siblings, my cousins and me and our total count is 10. So i write this code and when i run it, it just give me 1 output. How can i print all the X values(names) on this query. And if possible how can i change what name comes first or how can i choose as a like what 3rd or 5th name would be ? (My granduncle is my grandfather's brother.)
Here is my code and output
granduncle(T,X) :- brother(T,Z),parent(Z,Y),parent(Y,X).
?- granduncle(john,X).
X=stan
Upvotes: 2
Views: 387
Reputation: 15316
You need to use the collection predicates:
and
to collect all the solutions into a single list.
For example:
bagof(X,granduncle(john,X),Bag).
will create a list of solutions in Bag
.
Then you can slice & dice the list with predicates like:
Upvotes: 1