联产品与总和类型相同吗?

时间:2017-04-23 15:23:48

标签: haskell type-theory

我在看this lecture from Bartosz Milewski,他正在解释副产品和总和类型。

在演讲中,他从一个到另一个。

副产品与总和类型相同吗?

1 个答案:

答案 0 :(得分:16)

基本上,是的。副产品原则上更为通用,但不需要 就Haskell而言,一定会引起你的注意。

副产品不是和类型的类别示例是category of vector spaces,其中线性映射为箭头。在这个类别中,不相交和类型没有多大意义,因为它们会给你两个不同的零向量元素。

相反,事实证明产品类型(在线性代数中称为direct sums,但在实现方面它们是元组,而不是替代品)是这方面的副产品类别:

SubHask

(此类别的标准产品是tensor product。虽然可以忽略这一点并使用普通元组作为产品类型,即实际的副产品。我认为这有任何希尔伯特空间都与其双重空间同构的事实。在我的constrained-categories/linearmap-category库中,产品是元组,而Mike Izbicki has not done this在局部相似的OnCheckedChanged库中。) 见Derek Elkins'评论

<小时/> 我理解数据意义上的“和类型”,即作为带有标记联合结构的代数数据类型。