CLP(FD)

CLP(FD) 约束有限域 )实现整数运算。它们在所有严肃的 Prolog 实现中都可用。

CLP(FD) 约束有两个主要用例:

  • 声明性整数运算
  • 解决计划,调度和分配任务等组合问题。

例子:

?- X #= 1+2.
X = 3.

?- 3 #= Y+2.
Y = 1.

请注意,如果要在第二个查询中使用 is/2,则会发生实例化错误:

?- 3 is Y+2.
ERROR: is/2: Arguments are not sufficiently instantiated