質問

制約満足度の問題を解決する「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, 、別の順序での議論を除いて。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top