setof/3
: встроенный предикат Пролога setof(+Template, +Goal, -Set)
связывает Set
со списком всех экземпляров Template
, удовлетворяющих цели Goal
.
Конструкция +Var^Goal
говорит setof/3
не связывать Var
в Goal
.
?- setof(X, Y^foo(Y, X), Result).
Result = [a, b].