可能重复:
Prolog delete: doesn't delete all elements that unify with Element删除列表中的所有成员没有统一的序言
在Prolog如果你这样写:
delete([(1,1),(1,2),(1,1),(3,4)],(1,_),L).
结果将是:
L = [ (1, 2), (3, 4)].
什么是正常的,因为_ variable在第一个元素中与1绑定,并且它搜索(1,1)的更多元素并删除它们。
有没有办法阻止这种统一发生并删除窗体(1,_)的所有成员。 在这种情况下,结果必须是: L = [(3,4)]。
工程原则,但如果破裂列表项在当时不够实例化'delete_pattern/3'运行。 – repeat