问题
How to expand a query into a list?
f(a,b).
f(a,c).
d(a.d).
expand(f(a,X), Out) -----> Out=[b,c,d]
回答1:
Use bagof/3 or setof/3. E.g.:
?- bagof(X, (X = 1; X = 2), L).
L = [1,2]
yes
In your case that would be
?- bagof(X, f(a,X), Out).
来源:https://stackoverflow.com/questions/1445490/expand-a-query-into-a-list-in-prolog