如何在Prolog中用append编写myDel?

如何在Prolog中用append编写myDel?,prolog,append,Prolog,Append,我不熟悉Prolog,一直在做一些编程作业。其中一个应该是这样工作的: myDel(1, [1, 2, 1, 3, 1, 4], M). 结果应该是: M = [2, 3, 4]. 要解决这个问题,可以只递归地使用append,而不使用内置的delete 有人能帮忙吗?我必须说,如果不给你答案,很难帮上忙。序言有点像这样。这里有一个部分答案,希望不会透露太多: myDel(N, [], []). myDel(N, [N|T], U) :- ... 对不起!需要削减开支 myDel(N,L,

我不熟悉Prolog,一直在做一些编程作业。其中一个应该是这样工作的:

myDel(1, [1, 2, 1, 3, 1, 4], M).
结果应该是:

M = [2, 3, 4].
要解决这个问题,可以只递归地使用append,而不使用内置的delete


有人能帮忙吗?

我必须说,如果不给你答案,很难帮上忙。序言有点像这样。这里有一个部分答案,希望不会透露太多:

myDel(N, [], []).
myDel(N, [N|T], U) :- ...
对不起!需要削减开支

myDel(N,L,DelL) :-
   append(L0,[N|R],L),
   myDel(N,R,DelL2),
   append(L0,DelL2,DelL),
   !.
myDel(_,L,L).

想一想T和U之间的关系是什么,答案才是有效的,你会如何在第二条的主体中表达这一点。还需要考虑一个第三条款,它包括第二个列表的头不等于n的情况(<代码> Mydel[n,[Ht],…< /代码>)。非常感谢您的回答!但是马塞洛先来,并给我稍早的启示: