0
我在学习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).
谢谢
我在学习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).
谢谢
is_mother(X) :- female(X), parent(X,Y).
这在技术上是正确的,因为它说,X是一个母亲,如果X是女性,X是有人(Y)的母公司。在这个定义中,由于您没有使用它的值,因此Prolog会给您一个关于Y是“单身”变量的警告。为了避免这种情况的警告,你可以使用_
或与_
开头的名称来表示一个变量,其价值,你不关心和前导不会警告你不使用:
is_mother(X) :- female(X), parent(X,_).
条款female(X)
和parent(X,_)
假定有要么谓词female(X)
和parent(X,Y)
或你有事实,如(例如)female(sally).
其中sally
是一个“原子”(在Prolog中一个恒定),和/或parent(sally, tom).
是否曾经在一些数据和测试呢? – DrLivingston
是的,这是正确的 –