微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

类别中初始对象和最终对象之间的区别

如何解决类别中初始对象和最终对象之间的区别

Bartosz Milewski在Chapter 5 Terminal Object 部分中强调了以下内容

请注意,在此示例中,唯一性条件至关重要,因为存在其他集合(实际上,除了空集合外,所有其他集合)都有来自每个集合的射态射影。例如,为每种类型定义一个布尔值函数(谓词):

yes :: a -> Bool
yes _ = True

但是Bool不是终端对象。每种类型至少还有一个Bool值的函数

no :: a -> Bool
no _ = False

坚持唯一性为我们提供了正确的精度,可以将终端对象的定义缩小为一种类型。

所有这些都在初始对象部分的 之后,其中类似的观察结果是 不是

因此,我有一种感觉,可能是缺少初始对象和终端对象之间的关键区别。

根据我的理解,唯一性对于初始对象也至关重要,因为我可以观察到,还有其他集合(实际上是所有集合)对每个集合(空集合除外)都有外射态射影,但是会有通常,不止一种这样的态射(除了去()的那个。

所以我的问题是:在初始对象和最终对象之间,除了将它们连接到其他对象的箭头的方向之外,Bartosz可能试图在引用的文本下划线吗?

我知道像作者是什么意思?这样的问题可能会引起不适,因为我们不在他的脑海中,但是我猜谁知道类别理论至少可以提出一些合理的假设

解决方法

每个集合(空集合除外)

这是关键部分。要求是每个集合句点必须有外向语素。一个分解存在的集合足以破坏它。这就是为什么确实Set中的初始对象已经定义明确,甚至不需要唯一性的原因:空集是唯一具有指向空集的箭头的集。 >

与此同时,每个非空集合实际上都是从每个集合(包括空集合)中传入的箭头,但只有一个元素集合才是唯一的箭头。

,

这是书中的直接引文:“初始对象是具有到该类别中的任何对象的只有一个态射的对象。”注意只有一个部分。

顺便说一句,我也非常小心,不要说“任何 other 个对象”,因为从初始对象到它本身还有一个独特的形态:它始终是身份。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。