答案 0 :(得分:16)
基本上,是的。副产品原则上更为通用,但不需要 就Haskell而言,一定会引起你的注意。
副产品不是和类型†的类别示例是category of vector spaces,其中线性映射为箭头。在这个类别中,不相交和类型没有多大意义,因为它们会给你两个不同的零向量元素。
相反,事实证明产品类型(在线性代数中称为direct sums,但在实现方面它们是元组,而不是替代品)是这方面的副产品类别:
SubHask
(此类别的标准产品是tensor product。虽然可以忽略这一点并使用普通元组作为产品类型,即实际的副产品。我认为这有任何希尔伯特空间都与其双重空间同构的事实。在我的 见Derek Elkins'评论子> constrained-categories
/linearmap-category
库中,产品是元组,而Mike Izbicki has not done this在局部相似的OnCheckedChanged
库中。)
<小时/> † 我理解数据意义上的“和类型”,即作为带有标记联合结构的代数数据类型。