Domanda

Sto cercando di compilare csp.pl da "libro Computational Intelligence" che risolve il problema di soddisfacimento di vincoli. Voglio usare questo come punto di partenza per risolvere generatore di cruciverba.

Ma quando si tenta di eseguire il codice dà

 Existence error in user:remove/3
! procedure user:remove/3 does not exist
! goal:  user:remove([1,2,3,4],3,_127)
| ?- :-

Credo rimozione non è un built-in predicato

% 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).

Questa è la parte del codice ... Chiunque può Please help me risolvere questo problema ... Codice deve essere avviata in quanto nel libro di testo la sua affermato di corsa HV su alcuni programmi ..

Si prega di aiuto

È stato utile?

Soluzione

Non credo remove fa parte di alcuna libreria Prolog - certamente non SWI Prolog. La biblioteca lista è qui .

C'è un delete predicato che fa la stessa cosa che utilizza il codice remove per. Quindi, basta trovare e sostituzione e dovrebbe funzionare.

Altri suggerimenti

lists biblioteca usando

:- use_module(library(lists)).

Questo vi dà l'accesso al predicato lists:select/3, che fa ciò che il vostro choose/3 dovrebbe fare. lists:delete/3 è quasi la tua remove/3, se non con gli argomenti in un ordine diverso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top