我知道减法谓词removes,它从列表中删除一列项目
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的新手。也许我没有问对这个问题(我的错)。如果有另一种方法来实现this.Is,它是预先定义的,还是我必须自己定义它。我能举个例子吗?
发布于 2018-06-01 03:29:22
当然,有很多方法。要做到这一点,一个好方法是使用库reif。
请重复以下步骤,查看此问题的答案:
有一些定义的通用谓词,您可以根据您的程序进行调整。
remove(List,Element,NewList):-
tinclude(not(list_memberd_truth([Element])),List,NewList).
https://stackoverflow.com/questions/50630925
复制相似问题