0

以下のコードでは、** の「不正な文字」という姉妹関数でエラーが発生しています

引用符

Person \= P1** (\= は等しくない)

引用符

ドメイン 人物 = シンボル

PREDICATES 親(Person,Person) 女性(Person) 男性(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).
4

1 に答える 1

0

よくわかりませんし、現在 Turbo Prolog を持っていないため試すこともできませんが、変数を宣言する必要がないことを漠然と覚えています。

そして、代わりに Child が Person であるべきだと思います (結局のところ、ChildPerson です)。このように単純化してみてください

DOMAINS

Person = SYMBOL

PREDICATES

parent(Person,Person)
female(Person)
male(Person)
mother(Person,Person)
...
于 2013-02-20T17:49:44.897 に答える