我试图用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).发布于 2012-05-15 16:39:08
sister\2谓词中的变量需要使用大写字母。在你的代码中你有小写的字母,它们是原子,所以除非你有叫做x,y,f和m的人,否则这总是会失败。
另外,添加X \= Y以防止X成为她自己的姐妹。
https://stackoverflow.com/questions/10596829
复制相似问题