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