众所周知,类型为 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/