首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Prolog: Call 3=2+1 -> Fail: 3=2+1

Prolog: Call 3=2+1 -> Fail: 3=2+1
EN

Stack Overflow用户
提问于 2020-06-28 16:41:14
回答 1查看 108关注 0票数 1

我正在做Prolog中的一些工作,我想在我的程序图中的某个点检查某个variable1是否等于变量2+1 (var1=var2+1)。上面说是假的。在我的例子中,Variable1等于3,而var2等于2,它不注册为真,我不明白为什么。我试着“追踪”它,但仍然不明白问题是什么,它只是失败了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-28 16:53:53

在Prolog中,2+1只是2+1,或者更规范的+(2,1)。毕竟,仅仅是因为有些人把+看作是加法,2+1才等同于3

可以使用 [swi-doc]计算算术表达式,例如:

代码语言:javascript
复制
?- X is 2+1.
X = 3.

?- 3 is 2+1.
true.

您还可以使用[=:=/2 swi](https://www.swi-prolog.org/pldoc/doc_for?object=(%3D%3A%3D%29/2)检查这两个操作数是否等效,如果这些操作数是算术计算的:

代码语言:javascript
复制
?- 3 =:= 2+1.
true.
?- 4 =:= 2+1.
false.
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62625421

复制
相关文章

相似问题

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