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

sha*_*ent 3 prolog

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

在Prolog ?- X is X+1中,变量的增量为X1.

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

Wil*_*sem 6

Prolog不适用于可以改变值的元素之类的变量.变量是当前没有值的元素,一旦它具有值,它就不能改变该值(除了撤消统一的回溯).

如果X已经有一个值,X+1将计算,但你不能统一 34:

?- X=3, X is X+1.
false.
Run Code Online (Sandbox Code Playgroud)

如果此时X没有接地,is谓词将失败:

?- X is X+1.
ERROR: is/2: Arguments are not sufficiently instantiated
Run Code Online (Sandbox Code Playgroud)

这个问题可能想要证明命令式编程和逻辑编程之间的基本区别之一:在命令式编程中,变量可以被赋予(新)值,在逻辑编程中,变量只能接地一次(回溯除外).完全接地后,您无法以不同方式接地.