prolog如何从列表中删除元素?

时间:2018-05-31 18:49:43

标签: list prolog

我知道删除的减法谓词会删除列表中的项目列表

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。 也许我没有正确地问这个问题(我的坏)。 如果有另一种方法来实现这一点。它是预先定义的还是我必须自己定义它。 我能举个例子吗?

1 个答案:

答案 0 :(得分:3)

当然,有很多方法。 一个好方法是使用库reif。

重复查看这个问题的答案:

Delete vowels in a list

有一些常规用法谓词已定义为可以适应您的程序。

remove(List,Element,NewList):-
     tinclude(not(list_memberd_truth([Element])),List,NewList).