我试图让一个简单的家谱与 Prolog 一起使用最多允许 3 个事实,但是我似乎无法将我的妹妹定义为我父母的孩子。这是我写的:
father(dad,me).
mother(mom,me).
siblings(me,sis).
parents(X,Z):-father(X,Z).
parents(Y,Z):-mother(Y,Z).
child(Z,X):-siblings(Z,Z2),parents(X,Z).
child(Z,Y):-siblings(Z,Z2),parents(Y,Z).
child(Z2,X):-siblings(Z,Z2),parents(X,Z).
child(Z2,Y):-siblings(Z,Z2),parents(Y,Z).
son(Z,X):-siblings(Z,Z2),parents(X,Z).
daughter(Z2,X):-siblings(Z,Z2),parents(X,Z).
brother(Z,Z2):-siblings(Z,Z2).
sister(Z2,Z):-siblings(Z,Z2).
当我输入father(ZFather,ZChild)
Prolog 时,它只显示me
为孩子而不是我的sis
. 我知道我没有在事实中定义它,但我试图在规则中这样做,child(Z2,X)
并且child(Z2,Y)
意思Z2
是我的sis
.
帮助将不胜感激。