矢量空间加矩阵作为类别

问题描述 投票:1回答:1

我试着理解带有向量空间的Haskell中的类别。我画了一张照片,任何人都可以为我查看。我不确定这是类别的好/右图片。

enter image description here

haskell
1个回答
4
投票

有一点可能在你的图片中不太准确:重要的是对象是向量空间(不是向量!),而态射是矩阵(我更喜欢说,线性映射。这些是无论如何都是单个实体,而不是“空格”矩阵“)。虽然矩阵本身就是向量空间的元素,但矩阵不是向量空间而只是单个向量。因此,应将“对象”气泡更改为不包含矩阵,而是包含矩阵集。并且,更多地了解细节:3×3矩阵的空间之间的线性映射实际上是9×9矩阵,而不是另一个3×3矩阵(尽管将其视为(3×3)×(3)是有意义的×3)张量)。 除此之外,太棒了!我认为类别向量空间是类别理论的一个很好的切入点。

然而,这并不直接与“Haskell中的类别”有关,除非Haskell中的类别也遵守类别定律。如果你只是想通过一些例子来理解这些法则,以便总体上理解类别,并最终在Haskell中使用它们 - 公平。 但是如果你真的想在Haskell中使用像Vectk这样的特定类别,那么这是一个棘手的故事,因为大多数人称之为“Haskell中的类别”实际上太弱了:它们要求所有Haskell类型都可以是对象。但是大多数类型都不能被理解为向量空间,所以你需要一个更细微的类别概念。这是由subhask library或我自己的constrained-categories提供的。两者都用于实现向量空间的类别:

http://hackage.haskell.org/package/subhask-0.1.1.0/docs/SubHask-Algebra-Vector.html http://hackage.haskell.org/package/linearmap-category-0.3.4.0/docs/Math-LinearMap-Category.html

© www.soinside.com 2019 - 2024. All rights reserved.