我正在阅读purescript wiki,发现以下部分解释了do
根据>>=
。>> = purescript中的意思是什么?
>>=
是什么意思?
待办事项符号
的做关键字引入了一元 表达简单的语法糖。
下面是一个例子,使用该单子为
Maybe
类型:maybeSum :: Maybe Number -> Maybe Number -> Maybe Number maybeSum a b = do n <- a m <- b let result = n + m return result
maybeSum
需要Maybe Number
类型的两个 值,如果既不是数字Nothing
返回它们的总和。使用do notation时,返回类型必须有相应的Monad类型的 实例。语句可以 有以下形式:
a <- x
这desugars到x >>= \a -> ...
x
这desugars到x >>= \_ -> ...
或只是x如果这是最后一个发言。- A let binding
let a = x
。请注意缺少关键字in
。的例子
maybeSum desugars to
::maybeSum a b = a >>= \n -> b >>= \m -> let result = n + m in return result