我是Prolog的新手,并且停留在一些编程作业上。他们中的一个应该像这样工作:如何在Prolog中写入myDel?
myDel(1, [1, 2, 1, 3, 1, 4], M).
的结果应该是:
M = [2, 3, 4].
来解决这个问题,可以只能使用追加递归,可以不能使用内置删除 。
有人可以帮忙吗?
我是Prolog的新手,并且停留在一些编程作业上。他们中的一个应该像这样工作:如何在Prolog中写入myDel?
myDel(1, [1, 2, 1, 3, 1, 4], M).
的结果应该是:
M = [2, 3, 4].
来解决这个问题,可以只能使用追加递归,可以不能使用内置删除 。
有人可以帮忙吗?
我必须说,如果不给您提供答案,就很难提供帮助。 Prolog有点像这样。这里有一个部分答案,希望不会给太多:
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).
非常感谢您的回答! !但马塞洛先来,并且早点给我一点:) – bearzk 2011-05-25 08:50:25
感谢,我也到达这里,但不幸stucked> _ < – bearzk 2011-05-23 10:30:27
想想有什么关系T和U必须具备的答案是有效的,你怎么会在第二个子句的身体表达这一点。还要考虑第三个条款的必要性,其中第二个列表的头部不等于N('myDel(N,[H | T],...')。 – 2011-05-23 10:38:25