Spec-Zone.ru › Haskell 7

Control.Monad.Trans.Maybe

Авторские права (c) 2007 Yitzak Gale, Eric Kidd
Лицензия BSD-style (см. файл LICENSE)
Поддерживающий ross@soi.city.ac.uk
Стабильность экспериментальная
Переносимость переносимый
Безопасный Haskell Безопасный
Язык Haskell98

Содержание

  • Трансформатор монады MaybeT
  • Преобразование
  • Поднятие других операций

Описание

Трансформатор монады MaybeT расширяет монаду возможностью выхода из вычисления без возвращения значения.

Последовательность действий производит значение только если все действия в последовательности производят значения. Если одно действие выходит, остальная часть последовательности пропускается, и составное действие выходит.

Для варианта, допускающего диапазон значений исключения, см. Control.Monad.Trans.Except.

Трансформатор монады MaybeT

newtype MaybeT m a Источник

Параметризуемая монада maybe, полученная путем композиции произвольной монады с монадой Maybe.

Вычисления — это действия, которые могут произвести значение или выйти.

Функция return возвращает вычисление, которое производит это значение, а >>= связывает два подвычисления, выходя, если какое-либо из них выходит.

Конструкторы

MaybeT

Поля

runMaybeT :: m (Maybe a)

Примеры

MonadTrans MaybeT
Monad m => Monad (MaybeT m)
Functor m => Functor (MaybeT m)
MonadFix m => MonadFix (MaybeT m)
(Functor m, Monad m) => Applicative (MaybeT m)
Foldable f => Foldable (MaybeT f)
Traversable f => Traversable (MaybeT f)
(Functor m, Monad m) => Alternative (MaybeT m)
Monad m => MonadPlus (MaybeT m)
MonadIO m => MonadIO (MaybeT m)
Show1 m => Show1 (MaybeT m)
Read1 m => Read1 (MaybeT m)
Ord1 m => Ord1 (MaybeT m)
Eq1 m => Eq1 (MaybeT m)
(Eq1 m, Eq a) => Eq (MaybeT m a)
(Ord1 m, Ord a) => Ord (MaybeT m a)
(Read1 m, Read a) => Read (MaybeT m a)
(Show1 m, Show a) => Show (MaybeT m a)

mapMaybeT :: (m (Maybe a) -> n (Maybe b)) -> MaybeT m a -> MaybeT n b Источник

Преобразуйте вычисление внутри MaybeT.

  • runMaybeT (mapMaybeT f m) = f (runMaybeT m)

Преобразование

maybeToExceptT :: Functor m => e -> MaybeT m a -> ExceptT e m a Source

Преобразование вычисления MaybeT в ExceptT, с использованием значения исключения по умолчанию.

exceptToMaybeT :: Functor m => ExceptT e m a -> MaybeT m a Source

Преобразование вычисления ExceptT в MaybeT, при этом значение любого исключения игнорируется.

Поднятие других операций

liftCallCC :: CallCC m (Maybe a) (Maybe b) -> CallCC (MaybeT m) a b Source

Поднятие операции callCC в новый монаду.

liftCatch :: Catch e m (Maybe a) -> Catch e (MaybeT m) a Source

Поднятие операции catchE в новый монаду.

liftListen :: Monad m => Listen w m (Maybe a) -> Listen w (MaybeT m) a Source

Поднятие операции listen в новый монаду.

liftPass :: Monad m => Pass w m (Maybe a) -> Pass w (MaybeT m) a Source

Поднятие операции pass в новый монаду.

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/7.10.3/docs/html/libraries/transformers-0.4.2.0/Control-Monad-Trans-Maybe.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API