为什么在这个不相交的联合中这里1和2

Mor*_*ang 2 haskell

我研究了Haskell中Either的用法,

这是我们课程中的一个例子,但是我不明白为什么1和2而不是每个集合中的每个元素。

问题的形象

谢谢

Rei*_*chs 6

不相交的并集必须具有某种方法来使两个集合中的元素保持不同。这是通过在每个元素上标记一个数字来实现的,该数字代表它来自的集合。因此,在{ a, b }with 的不相交联合中{ a, c, d },您可以将其写为{(1, a), (1, b), (2, a), (2, c), (2, d)}(1, a)表示a来自第一组的和(2, a)代表a来自第二组的。

在Haskell中,我们使用数据构造函数构造和类型(的值)来表示标记的并Either A B集,并且是类型A和的不相交并集B