haskell - 为什么这里 1 和 2 在这个不相交的联合中
问题描述
我在haskell中研究了Either的用法,
这是我们课程中的一个示例,但我不明白为什么 1 和 2 而不是每个集合中的每个元素。
谢谢
解决方案
不相交的联合必须有某种方法来保持两个集合中的元素不同。这是通过用代表它来自的集合的数字标记每个元素来完成的。{ 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
。
推荐阅读
- amazon-web-services - 如何将 AWS Cloudwatch 日志插入数据库?
- haskell - 如何从 Haskell 中的文件中读取字节数组?
- javascript - 如何连接对象和参数中的特定值
- javascript - 使用 .map() 或 .filter() 函数对 Array 中的对象进行分组
- haskell - Haskell 运行时如何区分指针和未装箱的字大小值?
- javascript - javascript缩小时出现stackoverflow错误
- javascript - 我的网站主机如何阻止我页面上的 JavaScript 运行?
- go - 使用方括号导入多个包会导致错误?
- python - 测量运行时python中每行花费的时间
- ant - 您能否让我知道如何配置自由服务器以部署 Ant 构建战争文件