オペレータ#=
は、ページの一部に記載されています。 https://www.metalevel.at/prologなど、他のほとんどのページには含まれません。例:http://www.swi-prolog.org/pldoc/man?section=operatorsプロローグ内の#は何ですか
この演算子は何を意味していますか?
オペレータ#=
は、ページの一部に記載されています。 https://www.metalevel.at/prologなど、他のほとんどのページには含まれません。例:http://www.swi-prolog.org/pldoc/man?section=operatorsプロローグ内の#は何ですか
この演算子は何を意味していますか?
演算子は述語用の単純な構文糖です。と書くと、#=(X,Y)
の略語なので、述語(#=)/2
を参照してください。
オペレータはSWI-Prolog documentationで述のように記載されている:
演算式
X
はY
に等しいです。 の整数を推論するときは、より一般的な関係を得るために(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を参照してください。