我试图删除'b',即'(b,10)'。我的代码是:
remove(C, L1, L2).
remove(C, [C|N], N).
remove(C, [C|L1], [C|L2]) :- remove(C, L1, L2).
'C'代表胸部。 'L'代表一个位置。 'N'代表一个数字。
我不确定我是朝着正确的方向前进,还是我只是遗漏了一些东西。
答案 0 :(得分:1)
你需要一些纠正:
remove(_, [], []). % drop this if must fail when no element found
remove(C, [(C,_)|N], N) :- !.
remove(C, [A|L1], [A|L2]) :-
remove(C, L1, L2).
你必须传递一个匹配的参数
?- remove(c, [(a,1),(b,2),(c,3),(d,4)], L).
L = [(a,1),(b,2),(d,4)]