私はSWI-Prologで制約プログラミングを理解しようとしています。このチュートリアルを見てください:http://en.wikibooks.org/wiki/Prolog/Constraint_Logic_Programming
しかし、私は最初のハードルに落ちているようです。
?- use_module(library(clpfd)).
true.
?- X #> Y, X in 1..3, Y=2.
ERROR: Syntax error: Operator expected
ERROR: X
ERROR: ** here **
ERROR: #> Y, X in 1..3, Y=2 .
?-
ここで何が問題になっていますか?ライブラリを含めたようですが、チュートリアルの最初の例の行で構文エラーがスローされます。
私が見つけることができるすべてのチュートリアルは、#=、#<などの演算子を使用しているようです。しかし、私のSWI-Prologはそれらを嘲笑します。それらは、その制約ライブラリに付属する追加の構文ですか?(そして私はそれをロードするのに失敗していますか?)
または、チュートリアルの例を読み間違えていますか?
更新:以下のHorshの返信から物事を理解しようとしています。ライブラリを使用してインタラクティブターミナルで回線を実行すると、これを機能させることができます。しかし、ライブラリをインポートしてこれらの演算子をソースファイルで使用しようとすると、エラーが再度スローされます。何がわからないの?
アップデート2:
わかった。ソースファイルでライブラリを呼び出してから、#>を含むルールを記述した場合。次に、コマンドラインから参照してみます。エラーがスローされ、#>構文が認識されません。プログラムを参照する前にライブラリをコマンドラインにインポートすると、機能します。これは正しいでしょうか?