2016-07-03 5 views

答えて

4

演算子は述語用の単純な構文糖です。と書くと、#=(X,Y)の略語なので、述語(#=)/2を参照してください。

オペレータはSWI-Prolog documentationで述のように記載されている:

演算式XYに等しいです。 の整数を推論するときは、より一般的な関係を得るために(is)/2(#=)/2に置き換えてください。宣言的整数算術(セクションA.8.3)を参照してください。

これらは有限ドメイン(CLP(FD))パッケージ上制約論理プログラミングの一部です。この制約の1つの利点は、(is)/2オペレータよりもの方が、複数の方向で使用できることです。たとえば、

 
?- use_module(library(clpfd)). 
true. 

?- 4 #= 2*Y. 
Y = 2. 

?- X #= 2*16. 
X = 32. 

さらに制約が遅延する可能性があります。例:

?- X #= 2*Y, Y #= 14. 
X = 28, 
Y = 14. 

さらに広範な紹介については、 this clpfd primer by @matを参照してください。

関連する問題