Prolog设置差异关系

时间:2011-10-17 21:52:19

标签: prolog set

在Prolog中定义集合减法关系:

difference( Set 1, Set 2, SetDifference)

其中所有三个集都表示为列表。例如:

difference( [a,b,c,d], [b,d,e,f], [a,c])

谢谢!

2 个答案:

答案 0 :(得分:5)

这种功能通常包含在Prolog系统中。这让我觉得这是一项任意的家庭作业,我想知道规则是什么。大概你不能调用set_difference。你能使用会员/ 2吗?列表是否排序?该函数是否应该在所有模式(+++,++ - , - ++,+ - +)和回溯中生成替代答案?

如果从头开始做这样的功能,最好的方法是用英语思考,并以归纳的方式思考 你如何回答最简单的情况:两个空列表之间的区别是一个空列表。区别([],[],[])。 如果您添加到其中一个列表怎么办?对方?每个答案都有一个条款。

除此之外,答案取决于作业的规则。

答案 1 :(得分:0)

here中,Prolog中通常的集合操作(​​并集,交集,差异和选择)的实现