質問
制約満足度の問題を解決する「Computational Intelligence Book」からCSP.PLをコンパイルしようとしています。これをベースとして使用して、クロスワードパズルジェネレーターを解決したいと思います。
しかし、私がコードを実行しようとするときそれはそれが与える
Existence error in user:remove/3
! procedure user:remove/3 does not exist
! goal: user:remove([1,2,3,4],3,_127)
| ?- :-
removeは組み込みの述語ではないと思います
% select(E,L,L1) selects the first element of
% L that matches E, with L1 being the remaining
% elements.
select(D,Doms,ODoms) :-
remove(D,Doms,ODoms), !.
% choose(E,L,L1) chooses an element of
% L that matches E, with L1 being the remaining
% elements.
choose(D,Doms,ODoms) :-
remove(D,Doms,ODoms).
これはコードの一部です...誰でも私がこの問題を修正するのを手伝ってもらえますか...コードは、いくつかのプログラムでHV実行を主張しているため、教科書では実行する必要があります。
助けてください
解決
私は考えていません remove
プロログライブラリの一部です - 確かにSWIプロログではありません。リストライブラリはです ここ.
述語があります delete
これは、コードが使用するのと同じことを行います remove
にとって。したがって、ただ検索してレプレースするだけで、それは機能するはずです。
他のヒント
ロードします lists
図書館 使用
:- use_module(library(lists)).
これにより、にアクセスできます lists:select/3
述語、それはあなたのことをします choose/3
やるべきです。 lists:delete/3
ほとんどあなたです remove/3
, 、別の順序での議論を除いて。
所属していません StackOverflow