我正在学习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).
谢谢
答案 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