Я хотел бы узнать, как сделать предикат, который помещает все результаты, полученные от некоторого запроса (так что я получаю результат и нажимаю точку с запятой, пока не получу False) в список.
Например, если я напишу foo(X,[1,2,3])
в каком-нибудь слушателе Prolog, допустим, результат будет
X=[11];
X=[22];
False.
Я бы хотел получить все эти результаты в виде списка, поэтому произошло бы что-то вроде следующего.
?-another_foo(X,[1,2,3]).
X=[[11],[22]].
another_foo будет каким-то образом использовать foo для создания списка со всеми результатами из foo. Я просто не знаю как.