我在回覆列表时遇到了麻烦,我将如何返回与某个人相关的每个人的列表。因此,如果我说亲属(A,B),A就是一个人,B是与该人有关的所有人的名单。我可以编写任何其他必要的规则来协助完成此操作。这是我到目前为止。用Prolog找到所有亲戚
man(joe).
man(tim).
man(milan).
man(matt).
man(eugene).
woman(mary).
woman(emily).
woman(lily).
woman(rosie).
woman(chris).
parent(milan, mary).
parent(tim, milan).
parent(mary, lily).
parent(mary, joe).
parent(mary, matt).
parent(chris, rosie).
parent(eugene, mary).
parent(eugene, chris).
cousins(A, B) :- parent(C, A), parent(D, B), parent(E, C), parent(E, D), not(parent(C, B)), not(parent(D, A)), A \=B.
paternalgrandfather(A, C) :- man(A), man(B), parent(B, C), parent(A, B).
sibling(A, B) :- parent(C, A), parent(C, B), A \= B.
有人可以指导我如何去做这件事吗?谢谢。
您需要一个递归函数,该函数附加到递归中的结果。 – keyser