连接函数为双角monad

时间:2017-06-09 20:21:07

标签: haskell monads

我试图更好地了解monads。 所以我试图为几个monad编写返回,连接和绑定实现。

然而,当来到两个单身的monad时,我有点困惑

join :: m (m a) -> m a

m (m a)表示包含在monad中的monad,但是如果使用双重monad则暗示了什么值。 例如State Monad:sa? State Monad的正确加入签名是什么样的?

1 个答案:

答案 0 :(得分:10)

状态monad类型声明为State s a; 它仅与m a合并m ~ State s

join :: State s (State s a) -> State s a