PROLOG程序出错

时间:2013-02-20 17:34:36

标签: prolog turbo-prolog

在下面的代码中,我在**

“非法字符”姐妹函数中出错
  

块引用

人\ = P1 **(\ =不等于)

  

块引用

DOMAINS     Person = SYMBOL

PREDICATES     父(人,人)     女(人)     男(人)     母亲(人,人)     父亲(人,人)     祖父(人,人)     祖母(人,人)     姐姐(人,人)

CLAUSES     女(快乐)。     女(syndra)。     女(朱丽叶)。     雌性(丽萨)。

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 个答案:

答案 0 :(得分:0)

不确定,我不能尝试,因为我现在没有Turbo Prolog,但我依稀记得 Variables 不需要声明。

我怀疑Child应该是Person(毕竟,一个孩子一个人)。尝试以这种方式简化

DOMAINS

Person = SYMBOL

PREDICATES

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