从列表中删除前三个和后三个元素,并将其保存到prolog中的list2

时间:2014-11-29 14:45:49

标签: prolog reverse

我对Prolog来说是全新的,但我必须这样做才能完成作业。我尝试过这样的事情

delete(_,[],[]).  
delete([X,Y,Z],[X,Y,Z|List],Temp) :-  
   reverse(Temp,List).

但是无法弄清楚,如何从反向列表中实现第二次删除。也许我做错了,我迷路了,谢谢你的回答。

1 个答案:

答案 0 :(得分:0)

使用append

delete([A, B, C | End], Middle, [A, B, C, X, Y, Z]) :-
    append(Middle, [X, Y, Z], End).

试运行:

?- delete([1,2,3,4,5,6,7,8], L1, L2).
L1 = [4, 5],
L2 = [1, 2, 3, 6, 7, 8] 

?- delete([1,2,3], L1, L2).
false.