Prolog 不知道怎么说男性(X)不等于女性(X)

Prolog 不知道怎么说男性(X)不等于女性(X),prolog,Prolog,我在prolog中有以下代码 male(X). female(X). child(X,Y). mother(X,Y) :- female(X), child(Y,X). 即使我将其测试为 男性(X),母亲(X,Y) 我不知道我该如何编码男性(X)不等于女性(X) 我试过妈妈(X,Y):-女(X)+男性(X),儿童(Y,X)。但这不起作用。男性(X)。意味着每个人都是男性女性(X)。表示每个人都是女性。你想用这些做什么?我知道这就是问题所在。此代码无法区分男性和女性。基本上,我使用男性和女性为

我在prolog中有以下代码

male(X).
female(X).
child(X,Y).

mother(X,Y) :- female(X), child(Y,X).
即使我将其测试为 男性(X),母亲(X,Y)

我不知道我该如何编码男性(X)不等于女性(X)


我试过妈妈(X,Y):-女(X)+男性(X),儿童(Y,X)。但这不起作用。

男性(X)。
意味着每个人都是男性<代码>女性(X)。表示每个人都是女性。你想用这些做什么?我知道这就是问题所在。此代码无法区分男性和女性。基本上,我使用男性和女性为母亲和父亲等编写规则。如果它调用的谓词没有意义,那么您对
mother/2
的定义就没有意义。你的注意力放错地方了。
mother/2
的定义很好。正如@aschepler所说,你对
男性/1
女性/1
儿童/2
的定义是不正确的。你应该有事实而不是规则:
男性(亚伯拉罕)
女性(莎拉)
孩子(艾萨克,莎拉)