1

在 Haskell 编程语言中,根据https://en.wikibooks.org/wiki/Haskell/Category_theory#Translating_categorical_concepts_into_Haskell

59.2.2 将分类概念翻译成 Haskell

  1. 我们在该类别Hask及其子类别中工作。

  2. 对象是类型。

  3. 态射是函数。

  4. 接受一种类型并返回另一种类型的东西是类型构造函数。

  5. 接受一个函数并返回另一个函数的东西是高阶函数。

  6. 类型类以及它们提供的多态性是一种很好的方式来捕捉这样一个事实,即在类别理论中事物通常同时定义在多个对象上。

范畴论中的什么概念是类型类表示的?作为 的子类别Hask

4

1 回答 1

4

根据 Dominic Orchard的说法,类型类对应于 Hask 的子类别:

单个参数类型类的实例可以解释为描述一组类型的成员(或多参数类型类的类型关系)。在类型签名中,受类型类约束约束的通用量化类型变量表示作为类成员的类型的集合。例如,对于Eq类,以下类型签名描述了类型的集合,其中存在 的实例Eq

 Eq a => a

的成员是HaskEq对象的子集合。同样,类型:

 (Eq a, Eq b) => (a -> b)

表示作为 的成员的对象的子集合中对象之间的HaskEq映射的态射的子集合。因此,该类使用上述对象和态射的子集合Eq定义了EqHask 的子类别。

于 2019-07-21T15:38:53.053 回答