我想写一个程序来删除给定列表中任何成员的出现,如下所示:
deleteall(1,[1,2,3,1,3,2,5],Out)
Out= [2,3,3,2,5]
我该怎么做?这是我的尝试:
deleteall(X,[],[]).
deleteall(X,[H1|T1],[H2|T2]) :- deleteall (X,T1,T2).
答案 0 :(得分:0)
请尝试以下方法。您错过了原始计划中的条件。
deleteall(_,[],[]).
deleteall(X,[X|T1],T2) :- deleteall(X,T1,T2).
deleteall(X,[H1|T1],[H1|T2]) :- not(X=H1), deleteall(X,T1,T2).