【发布时间】:2011-03-11 06:14:23
【问题描述】:
- monad 被定义为类别 C 上的 endofunctor。假设 C 具有类型 int 和 bool 以及其他构造类型作为对象。现在让我们考虑一下在这个类别上定义的列表 monad。
根据它的定义 list then 是一个 endofunctor,它映射(这可以解释为一个函数吗?)一个 int 类型到 List[int] 和 bool 到 List[bool] 和映射(又是一个函数?)态射 int -> bool to 列表[int] -> 列表[bool]
所以,到目前为止,这是有道理的。但是让我深感困惑的是需要伴随它的自然变换的附加定义: 一种。 Unit...将 int 转换为 List[int] (List 函子的定义不是已经暗示了这一点吗?这是我的一个主要困惑
b. List 函子是否总是必须理解为从 int 到 List[int] 而不是从 int 到 List[bool] 的映射?
c。单位自然转换 int 到 List[int] 是否不同于将 List 定义为函子所暗示的从 int 到 List[int] 的映射?我想这只是对我之前的问题的重新陈述。
【问题讨论】: