我想刪除list1中的元素,當它等於list2中的元素時。 查詢和預期成果是:刪除列表中的元素
filter([[1,2,3],[1]] , [[1]] , X).
X = [[1, 2, 3]] ;
filter([[1,2,3],[1],[2,3,4],[2]] , [[1],[2]] , X).
X = [[1, 2, 3],[2,3,4]] ;
我已經把現在做的是:
filter(_,[],_).
filter([A|B],[A|D],E):-
filter(B,D,E).
filter([A|B],[C|D],[A|E]):-
A\=C,
filter(B,D,E).
但似乎不對的,並給出這樣的輸出:
11 ?- filter([[1,2,3],[1]],[[1]],X).
X = [[1, 2, 3]|_G488] ;
誰能幫忙?也許我接近成功。