Ошибка в программе PROLOG

В приведенном ниже коде я получаю сообщение об ошибке в сестринской функции "Недопустимый символ" в **

Blockquote

Персона \= P1** (\= не равно)

Blockquote

ДОМЕНЫ Персона = СИМВОЛ

ПРЕДЫДУЕТ родитель (Лицо, Лицо) женщина (Лицо) мужчина (Лицо) мать (Лицо, Лицо) отец (Лицо, Лицо) дедушка (Лицо, Лицо) Бабушка (Лицо, Лицо) сестра (Лицо, Лицо)

КЛАУЗЫ женские (веселые). женщина (syndra). женщина (Juliet). женщина (LISA).

male(parker).
male(peter).
male(herry).
male(bob).
male(paul).

parent(juliet,lisa).
parent(bob,lisa).
parent(bob,paul).
parent(bob,merry).

parent(juliet,paul).
parent(juliet,merry).
parent(peter,herry).
parent(lisa,herry).
parent(merry,parker).
parent(merry,syndra).

father(X,Person):-parent(X,Person) , male(X).
mother(X,Person):-parent(X,Person) , female(X).

grandfather(X,Person):-parent(Y,Person),father(X,Y).
grandmother(X,Person):-parent(Y,Person),mother(X,Y).

sister(X,Person):-parent(Z,X),parent(Z,Person),Person \= P1,female(Person).

1 ответ

Решение

Не уверен, и я не могу попробовать, потому что у меня сейчас нет Turbo Prolog, но я смутно помню, что переменные не нужно объявлять.

И я подозреваю, что ребенок должен быть человеком (в конце концов, ребенок - это человек). Попробуйте упростить таким образом

DOMAINS

Person = SYMBOL

PREDICATES

parent(Person,Person)
female(Person)
male(Person)
mother(Person,Person)
...
Другие вопросы по тегам