两类单子的连接函数
join function for two-kinded monads
我正在尝试更好地理解 monad。
所以我正在尝试为几个 monad 编写 return、连接和绑定实现。
然而当谈到二类单子时,我有点困惑
join :: m (m a) -> m a
m (m a)
暗示 monad 包裹在 monad 内部,但如果使用两类 monad,则暗示什么值。
例如,对于 State Monad:s
或 a
? State Monad 的正确 join 签名是什么样的?
state monad类型声明为State s a
;
它仅在 m ~ State s
.
时与 m a
统一
join :: State s (State s a) -> State s a
我正在尝试更好地理解 monad。 所以我正在尝试为几个 monad 编写 return、连接和绑定实现。
然而当谈到二类单子时,我有点困惑
join :: m (m a) -> m a
m (m a)
暗示 monad 包裹在 monad 内部,但如果使用两类 monad,则暗示什么值。
例如,对于 State Monad:s
或 a
? State Monad 的正确 join 签名是什么样的?
state monad类型声明为State s a
;
它仅在 m ~ State s
.
m a
统一
join :: State s (State s a) -> State s a