我正在閱讀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