Ошибка в программе 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)
...