Выберите уникальные элементы в Прологе - PullRequest
0 голосов
/ 05 мая 2018

Приведенные факты как

foo(1,a). foo(2,a). foo(3,b).

как получить уникальный результат [a, b]?

1 Ответ

0 голосов
/ 05 мая 2018

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].
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...