2013-02-20 2 views
0

В приведенном ниже коде, я получаю сообщение об ошибке в сестра функция, которая "недопустимый символ" в **Ошибка в программе ПРОЛОГ

BLOCKQUOTE

Person \ = P1 * * (\ = для не равно)

Blockquote

ДОМЕНЫ Person = СИМВОЛ

PREDICATES родитель (лицо, лицо) женщина (лицо) мужчина (Person) мать (Person, Person) отец (Person, Person) дед (Person, Person) бабушка (Person, Person) сестра (Person, Person)

ПОСТАНОВЛЕНИЯ женские (весёлые). женщина (синдра). женщина (юльетта). женщина (лиза).

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). 
+0

Это в Turbo PROLOG – user2092338

+0

Я решил это !!!!! – user2092338

ответ

0

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

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

DOMAINS 

Person = SYMBOL 

PREDICATES 

parent(Person,Person) 
female(Person) 
male(Person) 
mother(Person,Person) 
... 
+0

спасибо чувак. ваш намек работал на меня ... – user2092338