我正在做Prolog中的一些工作,我想在我的程序图中的某个点检查某个variable1是否等于变量2+1 (var1=var2+1)。上面说是假的。在我的例子中,Variable1等于3,而var2等于2,它不注册为真,我不明白为什么。我试着“追踪”它,但仍然不明白问题是什么,它只是失败了。
发布于 2020-06-28 16:53:53
在Prolog中,2+1只是2+1,或者更规范的+(2,1)。毕竟,仅仅是因为有些人把+看作是加法,2+1才等同于3。
可以使用 [swi-doc]计算算术表达式,例如:
?- 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)检查这两个操作数是否等效,如果这些操作数是算术计算的:
?- 3 =:= 2+1.
true.
?- 4 =:= 2+1.
false.https://stackoverflow.com/questions/62625421
复制相似问题