首页 > 解决方案 > 为什么这里 1 和 2 在这个不相交的联合中

问题描述

我在haskell中研究了Either的用法,

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

问题的形象

谢谢

标签: haskell

解决方案


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

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


推荐阅读