parent(_,_).
descendant(X,Y):- parent(Y,X).
descendant(edward,david).
descendant(malcolm,mark).
descendant(edward,therese).
descendant(malcolm,nathalie).
descendant(matthew,raymond).
descendant(matthew,nadine).
sibling(X,Y):- descendant(X,Z), descendant(Y,Z).
sibling(edward,kevin).
sibling(sean,vicky).
sibling(vicky,edward).
sibling(malcolm,claude).
sibling(matthew,stephania).
sibling(matthew,kurt).
这里的问题是由于某些原因代码无法正常工作。我的意思是说,无论我输入关于这段代码的什么疑问,它总是返回true (我没有在程序中包含所有的原子,因为它只是一个简单的男性(X)或女性(X),其中所有被包括的人都被覆盖了,节省了你一些时间) 我的意思是: - 兄弟姐妹(edward,david)。真正。 对不起,如果我没有任何意义,但如果有人会告诉我我在做什么错在这里,我真的很感激它...我的事实错误? (Prolog)
父/ 2是一个直接谓词(通过直接我的意思是它不是'用其他谓词来定义),我的问题是,如果我将其更改为父(X,Y),我会得到一个单例错误
如果没有用其他谓词来定义它,那就意味着它是根据事实来定义的。那么不需要添加任何事实。形式“父母(A,B)”的事实必须存在于某个地方。 – 2013-04-26 18:56:39