详细的含义? - X是X + 1

时间:2016-06-28 18:27:57

标签: prolog

在研究Prolog语言时,我发现了以下真假问题:

  

在Prolog中?- X is X+1会导致变量X增加一个。

老师说这是假的,但我不明白为什么。从现在开始,X不会X+1?为什么这是假的?

1 个答案:

答案 0 :(得分:6)

Prolog不能与变量一起使用,就像可以改变价值的元素一样。变量是一个当前没有值的元素,一旦它有一个值,它就不能改变那个值(除了撤消统一的回溯)。

如果X已有值,则会计算X+1,但您无法统一 3 4

?- X=3, X is X+1.
false.

如果此时X没有根据,is谓词将失败:

?- X is X+1.
ERROR: is/2: Arguments are not sufficiently instantiated

这个问题可能想要证明命令式编程和逻辑编程之间的根本区别之一:在命令式编程中,变量可以分配一个(新)值,在逻辑编程中变量只能< em>接地一次(回溯除外)。完全接地后,您不能以不同方式接地