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
You need to use the collection predicates:
bagof/3setof/3and
findall/3to collect all the solutions into a single list.
For example:
will create a list of solutions in
Bag.Then you can slice & dice the list with predicates like:
sort/2exclude/2partition/4