什么是prolog中的代码可以找到两个具有相同代的人?

什么是prolog中的代码可以找到两个具有相同代的人?,prolog,family-tree,Prolog,Family Tree,我需要一个prolog中的代码 假设我们在家谱中定义了一些人 如果两个人是同一代人,谁是他们的祖先,我如何编写一个函数来获取他们的名字和进程 parent(chester,irvin). parent(chester,clarence). parent(chester,mildred). parent(irvin,ron). parent(irvin,ken). parent(clarence,shirley). parent(clarence,sharon). parent(clarence,

我需要一个prolog中的代码

假设我们在家谱中定义了一些人

如果两个人是同一代人,谁是他们的祖先,我如何编写一个函数来获取他们的名字和进程

parent(chester,irvin).
parent(chester,clarence).
parent(chester,mildred).
parent(irvin,ron).
parent(irvin,ken).
parent(clarence,shirley).
parent(clarence,sharon).
parent(clarence,charlie).
parent(mildred,mary).


male(chester).
female(mildred).
male(irvin).
female(shirley).
male(clarence).
female(sharon).
male(ron).
female(mary).
male(ken).
male(charlie).



father(X,Y) :- parent(X,Y), male(X).

mother(X,Y) :- parent(X,Y), female(X).

grandparent(X,Y) :- parent(X,Z), parent(Z,Y).

paternalgrandfather(X,Y) :- father(X,Z), father(Z,Y).

sibling(X,Y) :- parent(Z,X), parent(Z,Y).

brothers(X,Y) :- sibling(X,Y),male(X),male(Y), \+ (X=Y).

samegeneration(x,y) :- HERE I DONT KNOW WHAT TO DO

分解:从两个拥有共同祖先的人的谓词开始,其中拥有相同的父母是基本情况。然后加强这一点,跟踪每个人的共同祖先有多少代人。再多走一步(作为练习),你就完成了

听起来像家庭作业?是的,我写了族谱和寻找叔叔和祖父的函数,但我的同辈函数变成了无限循环,我试过了,但我无法修复它!:(它进入无限循环?这当然意味着你写了一些东西,请发布。