Почему этот код пролога неправильный? - PullRequest
0 голосов
/ 15 декабря 2009
not(A), not(D), not(B), not(not(D));not(not(A)), D, not(B), not(not(D));not(not(A)), not(D),B, not(not(D));not(not(A)), not

(D), not(B), not(D).

Сообщает:

ОШИБКА: f: / program Файлы / пл / демо / test.pl: 1: Нет прав на изменение static_procedure `(;) / 2 '

Как правильно сделать?

1 Ответ

2 голосов
/ 15 декабря 2009

То, что вы дали, является запросом Пролога, который следует ввести в командной строке Пролога. Похоже, вы поместили его в исходный файл Prolog, который не будет работать. Исходные файлы пролога могут содержать только факты и правила .

Факт может выглядеть так:

foo(bar).

Правило может выглядеть так:

foo(X) :- baz(X).

Фрагмент, который вы дали, не соответствует ни одному из них. В исходном файле Prolog вы можете объединять только несколько конъюнкций или дизъюнкций в теле правила (то есть части справа от символа :-).

Вы можете прочитать о том, как писать предикаты пролога.

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