Prolog 序言:X是Y的祖父

Prolog 序言:X是Y的祖父,prolog,logic-programming,Prolog,Logic Programming,假设以下事实已输入Prolog数据库: father(X, Y) // X is the father of Y mother(X, Y) // X is the mother of Y male(X) // X is a male female(X) // X is a female parent(X, Y) // X is a parent of Y diff(X, Y) // X and Y are different

假设以下事实已输入Prolog数据库:

father(X, Y)     // X is the father of Y
mother(X, Y)     // X is the mother of Y
male(X)          // X is a male
female(X)        // X is a female
parent(X, Y)     // X is a parent of Y
diff(X, Y)       // X and Y are different
(1) 现在为(X,Y)的祖父添加序言规则,其中“X是Y的祖父”

(2) 为同级(X,Y)添加另一条规则,其中“X是Y的同级”

我的想法:

问题1:

我对如何找到父母的父母感到困惑,到目前为止我所拥有的只是

爷爷(X,Y):-男(X)

问题2:


兄弟姐妹(X,Y):-父母(p,X),父母(p,Y),差异(X,Y)

已经很久了。。。第一个是这样的:

grandpa_of(X, Y) :- father(X, P), father(P, Y).

太久了…:-P

已经很久了。。。第一个是这样的:

grandpa_of(X, Y) :- father(X, P), father(P, Y).

太久了…:-P

我认为杰森的意思是

爷爷(X,Y):-父亲(X,P),父母(P,Y)。

我认为杰森的意思是

爷爷(X,Y):-父亲(X,P),父母(P,Y)。

如果X是Y的爷爷,那对Y的父亲/母亲意味着什么?@Paul:下课了,这是过去的期末考试。所以我确实需要学习,但这不是为了马克。@Anon:他们的父亲是Y的祖父?对。所以如果X是Y的祖父,那么一定有人是Y的父母,并且X是他们的父亲。我们该怎么写呢?爷爷(X,Y):-爸爸(X,P),爸爸(P,Y)。这将首先找到X的孩子,然后在下一行中使用这些孩子,看一个人是否是Y的父亲。如果X是Y的祖父,这说明Y的父亲/母亲是什么?@Paul:下课了,这是从过去的期末考试中得出的。所以我确实需要学习,但这不是为了马克。@Anon:他们的父亲是Y的祖父?对。所以如果X是Y的祖父,那么一定有人是Y的父母,并且X是他们的父亲。我们该怎么写呢?爷爷(X,Y):-爸爸(X,P),爸爸(P,Y)。这将首先找到X的子代,然后在下一行中使用这些子代,以查看其中一个是否是Y的父亲。上面有一个拼写错误。应该有
:-
,而不是
:=
。上面有一个打字错误。应该有
:-
,而不是
:=