25 lines
616 B
Markdown
25 lines
616 B
Markdown
|
---
|
||
|
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 \_ = \[\]
|