我研究了Haskell中Either的用法,
这是我们课程中的一个示例,但我不明白为什么要使用1和2而不是每个集合中的每个元素。
谢谢
答案 0 :(得分:5)
不相交的并集必须具有某种方法来使两组中的元素保持不同。这是通过 tagging 每个元素完成的,每个元素都有一个数字,表示其来源。因此,在{ a, b }
与{ a, c, d }
的不相交联合中,您可以将其写为{(1, a), (1, b), (2, a), (2, c), (2, d)}
,(1, a)
代表第一组中的a
,而{{1 }}代表第二组中的(2, a)
。
在Haskell中,我们使用数据构造函数构造 sum类型(的值)来表示标记的并集,而a
是这些类型的不相交并集Either A B
和A
。