我不明白为什么会说操作员是女性而非男性

时间:2016-04-26 13:42:53

标签: prolog

male(X).
female(X).

这是我的代码。如果我的查询是:

male(John).
female(Jane).

它给了我一个女性的语法错误,但不是男性。我不知道这个问题来自哪里

1 个答案:

答案 0 :(得分:0)

还没有能力发表评论,但是:潜伏者对于谓词的不同以及以大写字母开头的变量是正确的。

但是,要添加到那个,如果你试图创建一个谓词,其中传入的任何变量被发现是男性或女性,那么指定变量X就没有意义了。可以而且应该只使用匿名变量_

male(_).
female(_).

我不确定为什么你会希望每次调用男性/女性成功,但由于这已经是你的代码所做的,上面将修复你应该得到的关于X是一个单例变量的警告(a只使用一次的变量)。