0
我仍然在学习递归的概念。 我想递归地添加一个列表的元素到另一个列表的头部,同时消除任何重复。我使用的代码对一个原子工作正常。这是没有递归的代码:在Prolog中递归地插入一个列表的元素到另一个列表中
insert(H,L,[H|L]):-
not(member(H,L)).
insert(H,L,L):-
member(H,L).
但是,当我尝试递归时,我没有得到预期的输出。我知道我在写插入/ 3谓词错误。
insert([H|T],[H1|T1],[H,H1|T1]):-
not(member(H,[H1|T1])):-
insert(T,[H,H1|T1],L).
insert([H|T],[H1|T1],[H1|T1]):-
member(H,[H1|T1]),
insert(T,[H1|T1],L).
insert([],L,L).
我很感激关于如何纠正上述代码错误的任何想法。