(=<<) :: (a -> m b) -> m a -> m b
id :: a -> a
join :: m (m a) -> m a
Run Code Online (Sandbox Code Playgroud)
所以不应该,
(=<<) id
Run Code Online (Sandbox Code Playgroud)
给出错误是因为,
id :: a -> a
Run Code Online (Sandbox Code Playgroud)
并不是,
id :: a -> m a
Run Code Online (Sandbox Code Playgroud)
不(= <<)期望,
(something -> m anything)
Run Code Online (Sandbox Code Playgroud)
作为它的第一个论点?
m a' -> m a'也是一种a -> a,所以我们可以拥有
id :: m a' -> m a' -- a = m a'
(=<<) :: (m a' -> m a') -> m (m a') -> m a' -- a = m a', b = a'
(=<<) id :: m (m a') -> m a'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
205 次 |
| 最近记录: |