Prolog 中的布尔赋值

F. *_* P. 5 prolog clpfd

全部。

我想为变量分配一个布尔值。

我试过类似的东西。

Diagonal is (XPiece = XFinal)
Diagonal is (XPiece =:= XFinal)
Diagonal is (XPiece is XFinal)
Run Code Online (Sandbox Code Playgroud)

没有工作...

任何解决方案?

Nic*_*rey 5

Prolog 的内置谓词is/2将表达式的右侧计算为算术表达式,并将结果与​​左侧统一。

此外,prolog 没有布尔类型。Prolog 的内置类型是

  • 整数
  • 漂浮
  • 原子
  • 未绑定变量
  • 复合词

您可以选择将布尔值表示为原子true/ false(对可读性有用),或者您可以将布尔值表示为整数值1/ 0(对计算有用)。大多数过程语言(如 C)将算术值评估为布尔值的方式是破坏了 WRT 形式逻辑,但是:错误是单值 (0) 和真值是多值 (非零),这意味着不是假的。在形式逻辑中,真是单值的,假被定义为不真。

因此,您可能需要考虑表示的语义并构建一些谓词来操作布尔值,可能会添加一些运算符来“扩展”序言。