【发布时间】:2019-02-01 04:08:32
【问题描述】:
我想编写一个 Prolog 程序来查找两个列表的相等性,其中元素的顺序
没关系。所以我写了以下内容:
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).
但是当我输入equal([1,2,3],X). 时,它不会显示X 的所有可能值。相反,程序挂在中间。可能是什么原因?
【问题讨论】:
-
即确定两个集合的相等性
标签: list prolog any failure-slice