我尝试编写一个函数(补集),给定一个集合 A 和一个通用集 U,返回 A 相对于 U 的补集,包装在 Just 类型构造函数中。我必须仔细检查集合 A 是否不是 U 的子集,在这种情况下,我应该返回 Nothing。
基本上,我发现很少有资源解释如何检查一个集合(在我们的例子中为 A)是否是 U 的子集。http://www.multiwingspan.co.uk/haskell.php?page=subsets http://www.multiwingspan.co.uk/haskell.php?page=subsets基本上,使用“subset”函数(返回布尔值)就足以查看 A 是否是 B 的子集。
我发现了一个同样不同的网站,它解释了如何在不实现递归函数的情况下创建补集,使用:
import Data.Set(Set)
import qualified Data.Set as Set