我不知道如何在考试中回答这个问题:
让我们考虑一下这个prolog程序:
p(a,b).
p(b,c).
p(c,a).
q(X,X).
q(X,Y):-p(X,Z),q(Z,Y).和问题:
?- q(X,X).而且有效吗?答案是:
上述目的以无限多种方式实现,但没有一种是替代X= b。
我真的不明白。海事组织可以通过以下三种方式填写这一谓词:
q(a,a) or q(b,b) or q(c,c).我在这里不明白什么?或者答案是错的,我只是浪费时间,而我的答案是好的?
发布于 2013-09-09 12:56:28
q(X,X).规则匹配q的参数相等的任何输入。你可以很容易地自己尝试一下:
?- [user].
|: q(X, X).
|: q(X, Y) :- p(X, Z), q(Z, Y).
|: % user://1 compiled 0.00 sec, 1,808 bytes
true.
?- q(b, b).
true.
?- q(X, X), X=b.
X = b.与b不同,您可以在最终查询中填写任何Prolog项。(请注意,我甚至没有在这里输入p的定义;这是不相关的。)
https://stackoverflow.com/questions/18697784
复制相似问题