Quería escribir un programa Prolog para encontrar la igualdad de dos listas, donde el orden de los elementos
no importa. Así que escribí lo siguiente:Programa Prolog para encontrar la igualdad de dos listas en cualquier orden
del(_, [], []) .
del(X, [X|T], T).
del(X, [H|T], [H|T1]) :-
X \= H,
del(X, T, T1).
member(X, [X|_]).
member(X, [_|T]) :-
member(X, T).
equal([], []).
equal([X], [X]).
equal([H1|T], L2) :-
member(H1, L2),
del(H1, L2, L3),
equal(T, L3).
Pero cuando le doy de entrada como equal([1,2,3],X).
, que no muestra todos los valores posibles de X
. En cambio, el programa se cuelga en el medio. ¿Cuál podría ser la razón?
i.e. Determinación de la igualdad de dos conjuntos – Numid