Haskell/Monad transformers: различия между версиями

Содержимое удалено Содержимое добавлено
м <source> -> <syntaxhighlight> (phab:T237267)
м орфография: обоих -> обеих, "монада" женского рода
Строка 4:
С помощью монад, обеспечивающих такую полезную функциональность общего назначения, очень естественно, что порой мы хотели бы использовать возможности ''нескольких'' монад сразу — например, функция, которая использует и <code>IO</code>, и обработку исключений <code>Maybe</code>. Конечно, мы можем использовать такой тип как <code>IO (Maybe a)</code>, но это заставляет нас делать сопоставление с образцом в <code>do</code>-блоках, чтобы извлечь необходимые значения: однако, фишка ''монад'' была также в том, чтобы избавиться от этого.
 
Итак, рассмотрим '''монадные трансформеры''': специальные типы, которые позволяют нам комбинировать две монады в одной, но разделяющие поведение обоихобеих. Начнем с примера, чтобы проиллюстрировать, почему трансформеры являются полезными и посмотрим простой пример того, как они работают.
 
== Проверка пароля ==