我知道删除的减法谓词会删除列表中的项目列表
subtract([a,b,c,a,b], [a,c], X).
但是有什么像
remove([a,b,c,a,b], a, X).
我知道我可以在
中修改上述内容subtract([a,b,c,a,b], [a], X).
达到理想的效果。
但我想知道是否还有其他办法?
编辑:
@ user27815
你确实提供了一个非常详细的答案,但我仍然非常新的prolog。 也许我没有正确地问这个问题(我的坏)。 如果有另一种方法来实现这一点。它是预先定义的还是我必须自己定义它。 我能举个例子吗?
答案 0 :(得分:3)
当然,有很多方法。 一个好方法是使用库reif。
重复查看这个问题的答案:
有一些常规用法谓词已定义为可以适应您的程序。
remove(List,Element,NewList):-
tinclude(not(list_memberd_truth([Element])),List,NewList).