相关疑难解决方法(0)

任何人都可以解释Monads吗?

可能重复:
什么是monad?

我想我明白'也许莫纳德'是什么,但我不确定其他类型.

monads glossary haskell functional-programming

79
推荐指数
0
解决办法
1万
查看次数

为什么在monad中使用这种特殊的函数类型?

Haskell的新手,我正试图找出这个Monad的东西.monadic绑定运算符 - >>=具有非常奇特的类型签名:

(>>=) :: Monad m => m a -> (a -> m b) -> m b
Run Code Online (Sandbox Code Playgroud)

为了简化,我们替换Maybem:

(>>=) :: Maybe a -> (a -> Maybe b) -> Maybe b
Run Code Online (Sandbox Code Playgroud)

但请注意,该定义可以用三种不同的方式编写:

(>>=) :: Maybe a -> (Maybe a -> Maybe b) -> Maybe b
(>>=) :: Maybe a -> (      a -> Maybe b) -> Maybe b
(>>=) :: Maybe a -> (      a ->       b) -> Maybe b
Run Code Online (Sandbox Code Playgroud)

在这三个中,中心的一个是最不对称的.但是,据我所知,如果我们想避免(LYAH称为样板代码),第一个有点无意义.但是,接下来的两个,我更喜欢最后一个.对于 …

monads haskell types typeclass

17
推荐指数
2
解决办法
868
查看次数