在Prolog中定义集合减法关系:
difference( Set 1, Set 2, SetDifference)
其中所有三个集都表示为列表。例如:
difference( [a,b,c,d], [b,d,e,f], [a,c])
谢谢!
答案 0 :(得分:5)
这种功能通常包含在Prolog系统中。这让我觉得这是一项任意的家庭作业,我想知道规则是什么。大概你不能调用set_difference。你能使用会员/ 2吗?列表是否排序?该函数是否应该在所有模式(+++,++ - , - ++,+ - +)和回溯中生成替代答案?
如果从头开始做这样的功能,最好的方法是用英语思考,并以归纳的方式思考 你如何回答最简单的情况:两个空列表之间的区别是一个空列表。区别([],[],[])。 如果您添加到其中一个列表怎么办?对方?每个答案都有一个条款。
除此之外,答案取决于作业的规则。
答案 1 :(得分:0)
在here中,Prolog中通常的集合操作(并集,交集,差异和选择)的实现