范畴论中的什么概念可以用来表示类型类?



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

59.2.2 将分类概念翻译成Haskell。

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

  2. 对象是类型。

  3. 态射是函数。

  4. 采用一个类型并返回另一个类型的事物是类型 构造 函数。

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

  6. 类型类,以及它们提供的多态性,使一个很好的 捕捉在范畴论中事物往往是事实的方法 一次在多个对象上定义。

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

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

单个参数类型类

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

Eq a => a

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

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

表示作为Eq成员的对象子集合中对象之间的Hask映射的态射的子集合。因此,Eq类定义了Hask的一个Eq子类别,其中包含上述对象和态射的子集合。

相关内容

  • 没有找到相关文章

最新更新