在prolog中写规则

时间:2014-03-29 00:45:33

标签: prolog

我正在学习Prolog,只想检查自己: 我认为这个问题非常基础,但我刚刚开始。

father(X,Y)
mother(X,Y)
male(X)
female(X)
parent(X,Y)
diff(X,Y)

为is_mother(X)写一个句子是正确的吗?

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

谢谢

1 个答案:

答案 0 :(得分:0)

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

这在技术上是正确的,因为它说,如果X是女性, X是母亲,而X是某人(Y)的父母。在这个定义中,Prolog会给你一个警告Y是一个“单例”变量,因为你没有使用它的值。要避免该警告,您可以使用_或以_开头的名称来表示您不关心其值的变量,而Prolog不会警告您不使用:< / p>

is_mother(X) :- female(X), parent(X,_).

条款female(X)parent(X,_)假设您有谓词{{​​1}}和female(X),或者您有事实,例如(例如)parent(X,Y)其中female(sally).是一个“原子”(Prolog中的常量)和/或sally