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


我当时正在看 本次讲座来自Bartosz Milewski 他正在解释联产品和总和类型。

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

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


9850
2018-04-23 15:23


起源



答案:


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

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

相反,事实证明 产品 类型(在线性代数中称为 直接总和,但实施方面,他们是元组,而不是替代品)是这一类别的副产品:

type LFun v w = v -> w

initial :: VectorSpace w => LFun () w
initial () = zeroV

(+++) :: VectorSpace w => LFun u w -> LFun v w -> LFun (u,v) w
(f+++g) (u,v) = f u ^+^ g v

(此类别的标准产品是 张量产品。虽然可以忽略这一点并使用普通元组作为产品类型,即实际的副产品。我认为这与任何希尔伯特空间与其双重空间同构的事实有关。在我的 constrained-categories/linearmap-category 图书馆,产品是元组,而Mike Izbicki 没有这样做 在局部相似 SubHask 图书馆。)请参阅Derek Elkins的评论。


我理解数据意义上的“和类型”,即作为具有标记联合结构的代数数据类型。


15
2018-04-23 15:54



或许更糟糕,更有趣的例子。 - n.m.
偏序集 你的意思是,我接受了吗?他们是 更轻松,可以说,很多 减 有趣。但如果你把它们作为一个额外的例子添加,肯定不会造成任何伤害。 - leftaroundabout
是的(对不起愚蠢的错字)。更有趣的是因为总和和产品与集合理论总和和产品无关。在向量空间中,您仍然有一些理论总和和产品(当您为每个空间修复基础时,在索引集上)。无论如何,这是我可能不正确的理解。 - n.m.
啊,这就是你的意思。是, 指数集 是一个可能的解释匹配 和 和 产品 虽然我个人不是这种解释的粉丝,但是一般来说,向量空间没有规范基础。 - leftaroundabout
从分类来看,除了副产品之外没有“总和类型”的定义,因此像“副产品不是总和类型”这样的陈述有点荒谬。我认为你有效地试图说的是 基础集 共同产品不是基本的汇总集的不相交联合。此外,向量空间的类别确实具有分类产品。它们碰巧与有限情况下的副产品一致(这被称为副产品)。当你考虑用无限集索引的co / products时,它们会发生分歧。 Tensor产品完全是绝对的。 - Derek Elkins


答案:


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

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

相反,事实证明 产品 类型(在线性代数中称为 直接总和,但实施方面,他们是元组,而不是替代品)是这一类别的副产品:

type LFun v w = v -> w

initial :: VectorSpace w => LFun () w
initial () = zeroV

(+++) :: VectorSpace w => LFun u w -> LFun v w -> LFun (u,v) w
(f+++g) (u,v) = f u ^+^ g v

(此类别的标准产品是 张量产品。虽然可以忽略这一点并使用普通元组作为产品类型,即实际的副产品。我认为这与任何希尔伯特空间与其双重空间同构的事实有关。在我的 constrained-categories/linearmap-category 图书馆,产品是元组,而Mike Izbicki 没有这样做 在局部相似 SubHask 图书馆。)请参阅Derek Elkins的评论。


我理解数据意义上的“和类型”,即作为具有标记联合结构的代数数据类型。


15
2018-04-23 15:54



或许更糟糕,更有趣的例子。 - n.m.
偏序集 你的意思是,我接受了吗?他们是 更轻松,可以说,很多 减 有趣。但如果你把它们作为一个额外的例子添加,肯定不会造成任何伤害。 - leftaroundabout
是的(对不起愚蠢的错字)。更有趣的是因为总和和产品与集合理论总和和产品无关。在向量空间中,您仍然有一些理论总和和产品(当您为每个空间修复基础时,在索引集上)。无论如何,这是我可能不正确的理解。 - n.m.
啊,这就是你的意思。是, 指数集 是一个可能的解释匹配 和 和 产品 虽然我个人不是这种解释的粉丝,但是一般来说,向量空间没有规范基础。 - leftaroundabout
从分类来看,除了副产品之外没有“总和类型”的定义,因此像“副产品不是总和类型”这样的陈述有点荒谬。我认为你有效地试图说的是 基础集 共同产品不是基本的汇总集的不相交联合。此外,向量空间的类别确实具有分类产品。它们碰巧与有限情况下的副产品一致(这被称为副产品)。当你考虑用无限集索引的co / products时,它们会发生分歧。 Tensor产品完全是绝对的。 - Derek Elkins