Prolog 序言:兄弟姐妹关系

Prolog 序言:兄弟姐妹关系,prolog,relationship,Prolog,Relationship,我试图在Prolog中建立一个关系模型,但姐妹关系最终失败了。我想知道有什么好的解决办法。我是一个初学者,这是我的第一个节目,欢迎任何帮助 man(adam). man(peter). man(paul). man(carlos). man(willem). woman(marry). woman(eve). woman(greta). woman(lisa). parent(adam, peter). parent(eve, peter). parent(adam, paul). par

我试图在Prolog中建立一个关系模型,但姐妹关系最终失败了。我想知道有什么好的解决办法。我是一个初学者,这是我的第一个节目,欢迎任何帮助

man(adam).
man(peter).
man(paul).
man(carlos).
man(willem).

woman(marry).
woman(eve).
woman(greta).
woman(lisa).

parent(adam, peter). 
parent(eve, peter).
parent(adam, paul).
parent(marry, paul).
parent(adam, willem).
parent(adam, lisa).
parent(eve, willem).
parent(eve, lisa).
parent(greta, adam).
parent(carlos, adam).

father(F, C) :-
   man(F),
   parent(F, C).

mother(M,C) :-
   woman(M),
   parent(M, C).

grandparent(P, C):-
   parent(P, K),
   parent(K, C).

sister(x,y) :-
   woman(x),
   mother(m, x),
   father(f, x),
   mother(m, y),
   father(f, y).

您的
姐妹\2
谓词中的变量需要使用大写字母。在你的代码中有小写字母,它们是原子,所以除非你有人叫
x
y
f
m
,否则这将总是失败的


另外,添加
X\=Y
以防止X成为自己的姐妹。

是的,是的。很酷的语言!是的,它是:p模式匹配是我在prolog中完成的最酷的任务(例如:解数独)。另外,添加“家庭作业”标签