haskell - 每个类型构造函数 (`Type -> Type` ) 都是某种仿函数吗

标签 haskell category-theory

众所周知,类型为 Type -> Type 的类型构造函数(在系统 F-omega 中)仅是一个 Functor,如果它实现了一个函数 (a -> b) -> f a -> f b。虽然这是一个无法无天的仿函数,但它也应该遵守仿函数法则(保留组成和同一性)。因此具有 Type -> Type 的类型构造函数并不总是仿函数。但这仅涉及类型范畴中的协变内仿函数。还有逆变仿函数和更多种类的仿函数。

我的问题:任何具有类型 Type -> Type 的类型构造函数/函数都是某种(类别理论)合法仿函数(协变、逆变或其他类型)吗?

最佳答案

是的,它始终是 Haskell 类型的离散类别(仅具有恒等箭头的类别)的仿函数。它为每个对象a分配一个对象f a。对于每个箭头(仅是恒等函数)a -> a,我们自动有一个箭头f a -> f a,即恒等函数。这些定律是微不足道的,因为唯一的组合是恒等箭头与自身组合。

关于haskell - 每个类型构造函数 (`Type -> Type` ) 都是某种仿函数吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66761721/

相关文章:

haskell - haskell中函数的双仿函数在哪里?

haskell - 所有 Haskell 仿函数都是内仿函数吗?

haskell - Coyoneda和自由仿函数有什么区别

haskell - 理解函数式编程中的排序

haskell - 为什么单子(monad)转换器与堆叠单子(monad)不同?

haskell - 如何从本地 Happstack 服务器提供 MathJax 服务?

c - Haskell:不支持的操作(协议(protocol)族不支持地址族)

haskell - 通过库里-霍华德通信了解 haskell 的德摩根定律

Haskell隐式字符串多态性

haskell - `arr fst` 是如何自然转换的?