首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Prolog统一演习

Prolog统一演习
EN

Stack Overflow用户
提问于 2013-09-09 12:01:51
回答 1查看 292关注 0票数 0

我不知道如何在考试中回答这个问题:

让我们考虑一下这个prolog程序:

代码语言:javascript
复制
p(a,b).
p(b,c).
p(c,a).
q(X,X).
q(X,Y):-p(X,Z),q(Z,Y).

和问题:

代码语言:javascript
复制
?- q(X,X).

而且有效吗?答案是:

上述目的以无限多种方式实现,但没有一种是替代X= b。

我真的不明白。海事组织可以通过以下三种方式填写这一谓词:

代码语言:javascript
复制
 q(a,a) or  q(b,b) or  q(c,c).

我在这里不明白什么?或者答案是错的,我只是浪费时间,而我的答案是好的?

EN

回答 1

Stack Overflow用户

发布于 2013-09-09 12:56:28

q(X,X).规则匹配q的参数相等的任何输入。你可以很容易地自己尝试一下:

代码语言:javascript
复制
?- [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的定义;这是不相关的。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18697784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档