Control.Monad.Instances
| Copyright | (c) The University of Glasgow 2001 |
|---|---|
| License | BSD-style (see the file libraries/base/LICENSE) |
| Maintainer | libraries@haskell.org |
| Stability | provisional |
| Portability | portable |
| Safe Haskell | Safe |
| Language | Haskell2010 |
Описание
Устарело: Этот модуль теперь не содержит никаких экземпляров и будет удален в будущем
Этот модуль УСТАРЕЛ и будет удален в будущем!
Functor и Monad экземпляры для (->) r и Functor экземпляры для (,) a и Either a.
Класс Functor используется для типов, по которым можно выполнять отображение. Экземпляры Functor должны удовлетворять следующим законам:
fmap id == id fmap (f . g) == fmap f . fmap g
Экземпляры Functor для списков, Maybe и IO удовлетворяют этим законам.
Минимальное полное определение
Методы
fmap :: (a -> b) -> f a -> f b Source
(<$) :: a -> f b -> f a infixl 4 Source
Заменить все вхождения в входных данных на одно и то же значение. Определение по умолчанию — fmap . const, но оно может быть переопределено более эффективной версией.
Экземпляры
| Functor [] | |
| Functor IO | |
| Functor Maybe | |
| Functor ReadP | |
| Functor ReadPrec | |
| Functor Last | |
| Functor First | |
| Functor STM | |
| Functor Handler | |
| Functor ZipList | |
| Functor Identity | |
| Functor ArgDescr | |
| Functor OptDescr | |
| Functor ArgOrder | |
| Functor ((->) r) | |
| Functor (Either a) | |
| Functor ((,) a) | |
| Functor (ST s) | |
| Functor (Proxy *) | |
| Arrow a => Functor (ArrowMonad a) | |
| Monad m => Functor (WrappedMonad m) | |
| Functor (Const m) | |
| Functor (ST s) | |
| Functor f => Functor (Alt * f) | |
| Arrow a => Functor (WrappedArrow a b) |
class Applicative m => Monad m where Source
Класс Monad определяет основные операции над монадой, концепцией из раздела математики, известного как теория категорий. Однако с точки зрения программиста Haskell, лучше всего рассматривать монаду как абстрактный тип данных действий. Выражения do в Haskell предоставляют удобный синтаксис для написания монадных выражений.
Экземпляры Monad должны удовлетворять следующим законам:
Кроме того, операции Monad и Applicative должны быть связаны следующим образом:
Вышеуказанные законы подразумевают:
и что pure и (<*>) удовлетворяют законам аппликативного функтора.
Экземпляры Monad для списков, Maybe и IO, определенные в Prelude, удовлетворяют этим законам.
Минимальное полное определение
Методы
(>>=) :: forall a b. m a -> (a -> m b) -> m b infixl 1 Source
Последовательно компонует два действия, передавая любое значение, полученное первым, как аргумент второму.
(>>) :: forall a b. m a -> m b -> m b infixl 1 Source
Последовательно компонует два действия, отбрасывая любое значение, полученное первым, как операторы последовательности (например, точка с запятой) в императивных языках.
Вставляет значение в монадный тип.
Возвращает ошибку с сообщением. Эта операция не является частью математического определения монады, но вызывается при сбое сопоставления с образцом в выражении do.
© 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/base-4.8.2.0/Control-Monad-Instances.html