Предикаты "чистого" Пролога - Prolog
Формулировка задачи:
Какие следующие предикаты относятся к
"чистому" Прологу, т. е. описываются в рамках
логической теории предикатов первого порядка?
1) отсечение;
2) fail;
3) true;
4) отрицание not;
5) call;
6) findall;
7) assert;
8) retract.
Только начал изучать, а ответ уже нужен, я предположил 2 3 4,
но это не верно или недостаточно.
Решение задачи: «Предикаты "чистого" Пролога»
textual
Листинг программы
not(Goal) :- call(Goal), !, fail. not(_).
Объяснение кода листинга программы
- Представлен код на языке Prolog
- Код содержит два предиката:
notи_(неопределенный предикат) - Предикат
notпринимает один аргументGoal - Если
Goalуспешно выполняется (то есть возвращает истинное значение), то выполняется сокращенная формаnot(_) - Если
Goalне выполняется (то есть возвращает ложное значение), то возвращается значениеfail - Предикат
_не принимает аргументов и всегда возвращает истинное значение - Предикат
notиспользуется для отрицания результатов выполнения других предикатов - В данном случае предикат
notиспользуется для отрицания предиката_ - Результатом выполнения кода будет истинное значение, если предикат
_не выполнится (то есть вернет ложное значение) - Результатом выполнения кода будет ложное значение, если предикат
_выполнится (то есть вернет истинное значение)