この関数の目的は、リストXに0または1のみが含まれていることを確認することです。Prologでリストのドメインを制限するins 0..1を使用する
私たちは、リストのドメインを宣言するためにinsを使用するように言われました。
verifyLines
という述語があります。ここで、H
は制約のリストで、X
は行を表すリストです。制約は、互いに続くことができる1の数を検証します。たとえば、H
に番号3が含まれている場合、X
はリストのある時点で1,1,1
を含む必要があります。問題は、私たちが既にそれを行う人のvalid_seq
という述語を既に作成しているので、それらの制約の検証ではありません。私たちの問題は、X
のリストに0または1しかないことを確認する必要があるということです。これは適切な方法ですか?このように使用すると、演算子が見つからないというエラーが出るようです。
verifylines(H, X) :-
X ins 0..1,
valid_seq(H, X).
編集: SWI-Prologでエラー
AERROR X:/bureau/tp2_projet2.pl:4:2:構文エラー:演算子は、予想
X ins 0..1,
を有するものである4行目
私は現在のverifylines()
の上にuse_module(library(clpfd)).
を追加しましたが、エラーメッセージに影響していないようです...私が間違っていることを確認していない、私はプロローグのライブラリの使い方にも慣れていません。
正確に何が問題であるかを理解するのに役立ついくつかの情報を質問に追加しました。それを調べていただきありがとうございます。 –
@ Simon-PierreDesjardinsソースファイル 'example.pl'に置くと、': - use_module(...) 'や'? - use_module(...)。 '。あなたはドキュメントを読むことができますか? –