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).
我很感激關於如何糾正上述代碼錯誤的任何想法。