Пролог Wildcard - PullRequest
       3

Пролог Wildcard

1 голос
/ 15 декабря 2011

У меня есть следующие пункты:

a(1).
a(a).
b(3).
b(a).
c(A,B) :- b(B),!,a(A).
c(X,_) :- a(X),b(X).

Запрос c(A,B) возвращает только два решения: A = 1, B = 3 and A = a, B = 3. Я проследил c(A,B) и заметил, что Пролог даже не пробовал второе предложение (c(X,_)). Почему это так?

1 Ответ

3 голосов
/ 15 декабря 2011

Предикат Prolog cut , или '!', Исключает варианты выбора - это дерево вывода Prolog.

Пожалуйста, проверьте его роль здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...