--- title: Monad localeTitle: монада --- # Законы Монады Существует 3 закона, которые должны удовлетворяться типом данных, который должен рассматриваться как монада # Возможно, Монада ```haskell justHead :: Maybe Char justHead = do (x:xs) <- Just "" return x ``` # Список Монад возврат такой же, как чистый аппликативный экземпляр Monad \[\], где return x = \[x\] xs >> = f = concat (map f xs) fail \_ = \[\]