Я читал purescript wiki и нашел следующий раздел, который объясняет do
с точки зрения >>=
.Что значит >> = означает в purescript?
Что означает >>=
означает?
Do нотация
Д.О. ключевое слово вводит простой синтаксический сахар для монадических выражений.
Ниже приведен пример, используя монаду для
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
.При использовании обозначений должно быть соответствующее значение экземпляра класса типа Monad для возвращаемого типа. Заявления могут иметь следующий вид:
a <- x
который desugars кx >>= \a -> ...
x
который desugars кx >>= \_ -> ...
или просто х, если это последнее утверждение.- Разрешено связывание
let a = x
. Обратите внимание на отсутствие ключевого словаin
.Пример
maybeSum desugars to
::maybeSum a b = a >>= \n -> b >>= \m -> let result = n + m in return result