Spec-Zone.ru › Haskell 9

Control.Applicative

Авторские права Conor McBride и Ross Paterson 2005
Лицензия BSD-стиль (см. файл LICENSE в дистрибутиве)
Поддержка libraries@haskell.org
Стабильность стабильная
Переносимость переносимая
Безопасный Haskell Надёжный
Язык Haskell2010

Содержание

  • Аппликативные функторы
  • Альтернативы
  • Примеры
  • Вспомогательные функции

Описание

Этот модуль описывает структуру, промежуточную между функтором и монадой (технически, сильным слабым моноидальным функтором). По сравнению с монадами, этот интерфейс лишен полной мощи операции связывания >>=, но

  • имеет больше примеров.
  • его достаточно для многих применений, например, для контекстно-свободного разбора или класса Traversable.
  • примеры могут выполнять анализ вычислений до их выполнения и, таким образом, обеспечивать общие оптимизации.

Этот интерфейс был введён для парсеров Никласом Рёйемо, потому что он допускает больше совместного использования, чем монадический интерфейс. Названия здесь в основном основаны на работе по разбору Доайте Свиерстры.

Для получения более подробной информации см. Applicative Programming with Effects, авторы Conor McBride и Ross Paterson.

Аппликативные функторы

class Functor f => Applicative (f :: Type -> Type) where Исходный код

Функтор с применением, предоставляющий операции для

  • встраивания чистых выражений (pure), и
  • последовательного выполнения вычислений и объединения их результатов (<*> и liftA2).

Минимальное полное определение должно включать реализации pure и любой из <*> или liftA2. Если определены оба, то они должны вести себя так же, как их стандартные определения:

(<*>) = liftA2 id
liftA2 f x y = f <$> x <*> y

Кроме того, любое определение должно удовлетворять следующим условиям:

Тождество
pure id <*> v = v
Композиция
pure (.) <*> u <*> v <*> w = u <*> (v <*> w)
Гомоморфизм
pure f <*> pure x = pure (f x)
Перестановка
u <*> pure y = pure ($ y) <*> u

Другие методы имеют следующие стандартные определения, которые могут быть переопределены эквивалентными специализированными реализациями:

  • u *> v = (id <$ u) <*> v
  • u <* v = liftA2 const u v

Вследствие этих законов, пример Functor для f будет удовлетворять

  • fmap f x = pure f <*> x

Может быть полезно отметить, что предполагая

forall x y. p (q x y) = f x . g y

из вышеизложенного следует, что

liftA2 p (liftA2 q u v) = liftA2 f u . liftA2 g v

Если f также является Monad, он должен удовлетворять

  • pure = return
  • m1 <*> m2 = m1 >>= (\x1 -> m2 >>= (\x2 -> return (x1 x2)))
  • (*>) = (>>)

(что подразумевает, что pure и <*> удовлетворяют законам аппликативного функтора).

Минимальное полное определение

pure, ((<*>) | liftA2)

Методы

pure :: a -> f a Исходный код

Поднять значение в структуру.

Примеры
Развернуть
>>> pure 1 :: Maybe Int
Just 1
>>> pure 'z' :: [Char]
"z"
>>> pure (pure ":D") :: Maybe [String]
Just [":D"]

(<*>) :: f (a -> b) -> f a -> f b infixl 4 Исходный код

Последовательное применение.

Несколько функторов поддерживают реализацию <*> более эффективную, чем стандартная.

Пример
Развернуть

В сочетании с (<$>), (<*>) может использоваться для построения записи.

>>> data MyState = MyState {arg1 :: Foo, arg2 :: Bar, arg3 :: Baz}
>>> produceFoo :: Applicative f => f Foo
>>> produceBar :: Applicative f => f Bar
>>> produceBaz :: Applicative f => f Baz
>>> mkState :: Applicative f => f MyState
>>> mkState = MyState <$> produceFoo <*> produceBar <*> produceBaz

liftA2 :: (a -> b -> c) -> f a -> f b -> f c Исходный код

Поднять бинарную функцию к действиям.

Некоторые функторы поддерживают реализацию liftA2 более эффективную, чем стандартная. В частности, если fmap является дорогостоящей операцией, скорее всего, лучше использовать liftA2 вместо fmap над структурой и затем использовать <*>.

Этот метод стал методом типа класса в 4.10.0.0. До этого он был функцией, определённой через <*> и fmap.

Пример
Развернуть
>>> liftA2 (,) (Just 3) (Just 5)
Just (3,5)
>>> liftA2 (+) [1, 2, 3] [4, 5, 6]
[5,6,7,6,7,8,7,8,9]

(*>) :: f a -> f b -> f b infixl 4 Исходный код

Последовательность действий, игнорируя значение первого аргумента.

Примеры
Развернуть

Если используется совместно с примером Applicative для Maybe, можно объединить вычисления Maybe с возможным "ранним возвратом" в случае Nothing.

>>> Just 2 *> Just 3
Just 3
>>> Nothing *> Just 3
Nothing

Конечно, более интересный случай использования - это вычисления с эффектами вместо просто возвращения чистых значений.

>>> import Data.Char
>>> import GHC.Internal.Text.ParserCombinators.ReadP
>>> let p = string "my name is " *> munch1 isAlpha <* eof
>>> readP_to_S p "my name is Simon"
[("Simon","")]

(<*) :: f a -> f b -> f a infixl 4 Исходный код

Последовательность действий, игнорируя значение второго аргумента.

Экземпляры
Подробности о экземплярах
Applicative Complex Источник

С версии: base-4.9.0.0

Подробности о экземпляре

Определено в Data.Complex

Методы

pure :: a -> Complex a Источник

(<*>) :: Complex (a -> b) -> Complex a -> Complex b Источник

liftA2 :: (a -> b -> c) -> Complex a -> Complex b -> Complex c Источник

(*>) :: Complex a -> Complex b -> Complex b Источник

(<*) :: Complex a -> Complex b -> Complex a Источник

Applicative First Источник

С версии: base-4.9.0.0

Подробности о экземпляре

Определено в Data.Semigroup

Методы

pure :: a -> First a Источник

(<*>) :: First (a -> b) -> First a -> First b Источник

liftA2 :: (a -> b -> c) -> First a -> First b -> First c Источник

(*>) :: First a -> First b -> First b Источник

(<*) :: First a -> First b -> First a Источник

Applicative Last Источник

С версии: base-4.9.0.0

Подробности о экземпляре

Определено в Data.Semigroup

Методы

pure :: a -> Last a Источник

(<*>) :: Last (a -> b) -> Last a -> Last b Источник

liftA2 :: (a -> b -> c) -> Last a -> Last b -> Last c Источник

(*>) :: Last a -> Last b -> Last b Источник

(<*) :: Last a -> Last b -> Last a Источник

Applicative Max Источник

С версии: base-4.9.0.0

Подробности о экземпляре

Определено в Data.Semigroup

Методы

pure :: a -> Max a Источник

(<*>) :: Max (a -> b) -> Max a -> Max b Источник

liftA2 :: (a -> b -> c) -> Max a -> Max b -> Max c Источник

(*>) :: Max a -> Max b -> Max b Источник

(<*) :: Max a -> Max b -> Max a Источник

Applicative Min Источник

С версии: base-4.9.0.0

Подробности экземпляра

Определено в Data.Semigroup

Методы

pure :: a -> Min a Источник

(<*>) :: Min (a -> b) -> Min a -> Min b Источник

liftA2 :: (a -> b -> c) -> Min a -> Min b -> Min c Источник

(*>) :: Min a -> Min b -> Min b Источник

(<*) :: Min a -> Min b -> Min a Источник

Applicative NonEmpty Источник

С момента: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Base

Методы

pure :: a -> NonEmpty a Источник

(<*>) :: NonEmpty (a -> b) -> NonEmpty a -> NonEmpty b Источник

liftA2 :: (a -> b -> c) -> NonEmpty a -> NonEmpty b -> NonEmpty c Источник

(*>) :: NonEmpty a -> NonEmpty b -> NonEmpty b Источник

(<*) :: NonEmpty a -> NonEmpty b -> NonEmpty a Источник

Applicative STM Источник

С момента: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Internal.Conc.Sync

Методы

pure :: a -> STM a Источник

(<*>) :: STM (a -> b) -> STM a -> STM b Источник

liftA2 :: (a -> b -> c) -> STM a -> STM b -> STM c Источник

(*>) :: STM a -> STM b -> STM b Источник

(<*) :: STM a -> STM b -> STM a Источник

Applicative Identity Источник

С момента: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Functor.Identity

Методы

pure :: a -> Identity a Источник

(<*>) :: Identity (a -> b) -> Identity a -> Identity b Источник

liftA2 :: (a -> b -> c) -> Identity a -> Identity b -> Identity c Источник

(*>) :: Identity a -> Identity b -> Identity b Источник

(<*) :: Identity a -> Identity b -> Identity a Источник

Applicative First Источник

С момента: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Monoid

Методы

pure :: a -> First a Исходный код

(<*>) :: First (a -> b) -> First a -> First b Исходный код

liftA2 :: (a -> b -> c) -> First a -> First b -> First c Исходный код

(*>) :: First a -> First b -> First b Исходный код

(<*) :: First a -> First b -> First a Исходный код

Applicative Last Исходный код

С момента: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Monoid

Методы

pure :: a -> Last a Исходный код

(<*>) :: Last (a -> b) -> Last a -> Last b Исходный код

liftA2 :: (a -> b -> c) -> Last a -> Last b -> Last c Исходный код

(*>) :: Last a -> Last b -> Last b Исходный код

(<*) :: Last a -> Last b -> Last a Исходный код

Applicative Down Исходный код

С момента: base-4.11.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Ord

Методы

pure :: a -> Down a Исходный код

(<*>) :: Down (a -> b) -> Down a -> Down b Исходный код

liftA2 :: (a -> b -> c) -> Down a -> Down b -> Down c Исходный код

(*>) :: Down a -> Down b -> Down b Исходный код

(<*) :: Down a -> Down b -> Down a Исходный код

Applicative Dual Исходный код

С момента: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

pure :: a -> Dual a Исходный код

(<*>) :: Dual (a -> b) -> Dual a -> Dual b Исходный код

liftA2 :: (a -> b -> c) -> Dual a -> Dual b -> Dual c Исходный код

(*>) :: Dual a -> Dual b -> Dual b Исходный код

(<*) :: Dual a -> Dual b -> Dual a Исходный код

Applicative Product Исходный код

С момента: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

pure :: a -> Product a Исходный код

(<*>) :: Product (a -> b) -> Product a -> Product b Исходный код

liftA2 :: (a -> b -> c) -> Product a -> Product b -> Product c Исходный код

(*>) :: Product a -> Product b -> Product b Исходный код

(<*) :: Product a -> Product b -> Product a Исходный код

Applicative Sum Исходный код

С момента: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

pure :: a -> Sum a Исходный код

(<*>) :: Sum (a -> b) -> Sum a -> Sum b Исходный код

liftA2 :: (a -> b -> c) -> Sum a -> Sum b -> Sum c Исходный код

(*>) :: Sum a -> Sum b -> Sum b Исходный код

(<*) :: Sum a -> Sum b -> Sum a Исходный код

Applicative ZipList Исходный код
f <$> ZipList xs1 <*> ... <*> ZipList xsN
    = ZipList (zipWithN f xs1 ... xsN)

где zipWithN относится к функции zipWith соответствующей арности (zipWith, zipWith3, zipWith4, ...). Например:

(\a b c -> stimes c [a, b]) <$> ZipList "abcd" <*> ZipList "567" <*> ZipList [1..]
    = ZipList (zipWith3 (\a b c -> stimes c [a, b]) "abcd" "567" [1..])
    = ZipList {getZipList = ["a5","b6b6","c7c7c7"]}

С момента: base-2.1

Подробности экземпляра

Определено в GHC.Internal.Functor.ZipList

Методы

pure :: a -> ZipList a Исходный код

(<*>) :: ZipList (a -> b) -> ZipList a -> ZipList b Исходный код

liftA2 :: (a -> b -> c) -> ZipList a -> ZipList b -> ZipList c Исходный код

(*>) :: ZipList a -> ZipList b -> ZipList b Исходный код

(<*) :: ZipList a -> ZipList b -> ZipList a Исходный код

Applicative NoIO Исходный код

С момента: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Internal.GHCi

Методы

pure :: a -> NoIO a Исходный код

(<*>) :: NoIO (a -> b) -> NoIO a -> NoIO b Исходный код

liftA2 :: (a -> b -> c) -> NoIO a -> NoIO b -> NoIO c Исходный код

(*>) :: NoIO a -> NoIO b -> NoIO b Исходный код

(<*) :: NoIO a -> NoIO b -> NoIO a Исходный код

Applicative Par1 Исходный код

С момента: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Generics

Методы

pure :: a -> Par1 a Источник

(<*>) :: Par1 (a -> b) -> Par1 a -> Par1 b Источник

liftA2 :: (a -> b -> c) -> Par1 a -> Par1 b -> Par1 c Источник

(*>) :: Par1 a -> Par1 b -> Par1 b Источник

(<*) :: Par1 a -> Par1 b -> Par1 a Источник

Applicative Q Источник
Подробности экземпляра

Определено в GHC.Internal.TH.Syntax

Методы

pure :: a -> Q a Источник

(<*>) :: Q (a -> b) -> Q a -> Q b Источник

liftA2 :: (a -> b -> c) -> Q a -> Q b -> Q c Источник

(*>) :: Q a -> Q b -> Q b Источник

(<*) :: Q a -> Q b -> Q a Источник

Applicative P Источник

С: base-4.5.0.0

Подробности экземпляра

Определено в GHC.Internal.Text.ParserCombinators.ReadP

Методы

pure :: a -> P a Источник

(<*>) :: P (a -> b) -> P a -> P b Источник

liftA2 :: (a -> b -> c) -> P a -> P b -> P c Источник

(*>) :: P a -> P b -> P b Источник

(<*) :: P a -> P b -> P a Источник

Applicative ReadP Источник

С: base-4.6.0.0

Подробности экземпляра

Определено в GHC.Internal.Text.ParserCombinators.ReadP

Методы

pure :: a -> ReadP a Источник

(<*>) :: ReadP (a -> b) -> ReadP a -> ReadP b Источник

liftA2 :: (a -> b -> c) -> ReadP a -> ReadP b -> ReadP c Источник

(*>) :: ReadP a -> ReadP b -> ReadP b Источник

(<*) :: ReadP a -> ReadP b -> ReadP a Источник

Applicative ReadPrec Source

Since: base-4.6.0.0

Подробности экземпляра

Определено в GHC.Internal.Text.ParserCombinators.ReadPrec

Методы

pure :: a -> ReadPrec a Source

(<*>) :: ReadPrec (a -> b) -> ReadPrec a -> ReadPrec b Source

liftA2 :: (a -> b -> c) -> ReadPrec a -> ReadPrec b -> ReadPrec c Source

(*>) :: ReadPrec a -> ReadPrec b -> ReadPrec b Source

(<*) :: ReadPrec a -> ReadPrec b -> ReadPrec a Source

Applicative IO Source

Since: base-2.1

Подробности экземпляра

Определено в GHC.Internal.Base

Методы

pure :: a -> IO a Source

(<*>) :: IO (a -> b) -> IO a -> IO b Source

liftA2 :: (a -> b -> c) -> IO a -> IO b -> IO c Source

(*>) :: IO a -> IO b -> IO b Source

(<*) :: IO a -> IO b -> IO a Source

Applicative Maybe Source

Since: base-2.1

Подробности экземпляра

Определено в GHC.Internal.Base

Методы

pure :: a -> Maybe a Source

(<*>) :: Maybe (a -> b) -> Maybe a -> Maybe b Source

liftA2 :: (a -> b -> c) -> Maybe a -> Maybe b -> Maybe c Source

(*>) :: Maybe a -> Maybe b -> Maybe b Source

(<*) :: Maybe a -> Maybe b -> Maybe a Source

Applicative Solo Source

Since: base-4.15

Подробности экземпляра

Определено в GHC.Internal.Base

Методы

pure :: a -> Solo a Source

(<*>) :: Solo (a -> b) -> Solo a -> Solo b Source

liftA2 :: (a -> b -> c) -> Solo a -> Solo b -> Solo c Source

(*>) :: Solo a -> Solo b -> Solo b Source

(<*) :: Solo a -> Solo b -> Solo a Source

Applicative [] Source

Since: base-2.1

Детали экземпляра

Определено в GHC.Internal.Base

Методы

pure :: a -> [a] Исходный код

(<*>) :: [a -> b] -> [a] -> [b] Исходный код

liftA2 :: (a -> b -> c) -> [a] -> [b] -> [c] Исходный код

(*>) :: [a] -> [b] -> [b] Исходный код

(<*) :: [a] -> [b] -> [a] Исходный код

Monad m => Applicative (WrappedMonad m) Исходный код

С момента: base-2.1

Детали экземпляра

Определено в Control.Applicative

Методы

pure :: a -> WrappedMonad m a Исходный код

(<*>) :: WrappedMonad m (a -> b) -> WrappedMonad m a -> WrappedMonad m b Исходный код

liftA2 :: (a -> b -> c) -> WrappedMonad m a -> WrappedMonad m b -> WrappedMonad m c Исходный код

(*>) :: WrappedMonad m a -> WrappedMonad m b -> WrappedMonad m b Исходный код

(<*) :: WrappedMonad m a -> WrappedMonad m b -> WrappedMonad m a Исходный код

Arrow a => Applicative (ArrowMonad a) Исходный код

С момента: base-4.6.0.0

Детали экземпляра

Определено в GHC.Internal.Control.Arrow

Методы

pure :: a0 -> ArrowMonad a a0 Исходный код

(<*>) :: ArrowMonad a (a0 -> b) -> ArrowMonad a a0 -> ArrowMonad a b Исходный код

liftA2 :: (a0 -> b -> c) -> ArrowMonad a a0 -> ArrowMonad a b -> ArrowMonad a c Исходный код

(*>) :: ArrowMonad a a0 -> ArrowMonad a b -> ArrowMonad a b Исходный код

(<*) :: ArrowMonad a a0 -> ArrowMonad a b -> ArrowMonad a a0 Исходный код

Applicative (ST s) Исходный код

С момента: base-2.1

Детали экземпляра

Определено в GHC.Internal.Control.Monad.ST.Lazy.Imp

Методы

pure :: a -> ST s a Исходный код

(<*>) :: ST s (a -> b) -> ST s a -> ST s b Исходный код

liftA2 :: (a -> b -> c) -> ST s a -> ST s b -> ST s c Исходный код

(*>) :: ST s a -> ST s b -> ST s b Исходный код

(<*) :: ST s a -> ST s b -> ST s a Исходный код

Applicative (Either e) Исходный код

С момента: base-3.0

Подробности экземпляра

Определено в GHC.Internal.Data.Either

Методы

pure :: a -> Either e a Исходный код

(<*>) :: Either e (a -> b) -> Either e a -> Either e b Исходный код

liftA2 :: (a -> b -> c) -> Either e a -> Either e b -> Either e c Исходный код

(*>) :: Either e a -> Either e b -> Either e b Исходный код

(<*) :: Either e a -> Either e b -> Either e a Исходный код

Applicative (StateL s) Исходный код

С момента: base-4.0

Подробности экземпляра

Определено в GHC.Internal.Data.Functor.Utils

Методы

pure :: a -> StateL s a Исходный код

(<*>) :: StateL s (a -> b) -> StateL s a -> StateL s b Исходный код

liftA2 :: (a -> b -> c) -> StateL s a -> StateL s b -> StateL s c Исходный код

(*>) :: StateL s a -> StateL s b -> StateL s b Исходный код

(<*) :: StateL s a -> StateL s b -> StateL s a Исходный код

Applicative (StateR s) Исходный код

С момента: base-4.0

Подробности экземпляра

Определено в GHC.Internal.Data.Functor.Utils

Методы

pure :: a -> StateR s a Исходный код

(<*>) :: StateR s (a -> b) -> StateR s a -> StateR s b Исходный код

liftA2 :: (a -> b -> c) -> StateR s a -> StateR s b -> StateR s c Исходный код

(*>) :: StateR s a -> StateR s b -> StateR s b Исходный код

(<*) :: StateR s a -> StateR s b -> StateR s a Исходный код

Applicative (Proxy :: Type -> Type) Source

Since: base-4.7.0.0

Instance details

Defined in GHC.Internal.Data.Proxy

Methods

pure :: a -> Proxy a Source

(<*>) :: Proxy (a -> b) -> Proxy a -> Proxy b Source

liftA2 :: (a -> b -> c) -> Proxy a -> Proxy b -> Proxy c Source

(*>) :: Proxy a -> Proxy b -> Proxy b Source

(<*) :: Proxy a -> Proxy b -> Proxy a Source

Applicative (U1 :: Type -> Type) Source

Since: base-4.9.0.0

Instance details

Defined in GHC.Internal.Generics

Methods

pure :: a -> U1 a Source

(<*>) :: U1 (a -> b) -> U1 a -> U1 b Source

liftA2 :: (a -> b -> c) -> U1 a -> U1 b -> U1 c Source

(*>) :: U1 a -> U1 b -> U1 b Source

(<*) :: U1 a -> U1 b -> U1 a Source

Applicative (ST s) Source

Since: base-4.4.0.0

Instance details

Defined in GHC.Internal.ST

Methods

pure :: a -> ST s a Source

(<*>) :: ST s (a -> b) -> ST s a -> ST s b Source

liftA2 :: (a -> b -> c) -> ST s a -> ST s b -> ST s c Source

(*>) :: ST s a -> ST s b -> ST s b Source

(<*) :: ST s a -> ST s b -> ST s a Source

Monoid a => Applicative ((,) a) Source

Для кортежей, ограничение Monoid на a определяет, как сливаются первые значения. Например, String объединяются:

("hello ", (+15)) <*> ("world!", 2002)
("hello world!",2017)

Since: base-2.1

Instance details

Defined in GHC.Internal.Base

Methods

pure :: a0 -> (a, a0) Source

(<*>) :: (a, a0 -> b) -> (a, a0) -> (a, b) Source

liftA2 :: (a0 -> b -> c) -> (a, a0) -> (a, b) -> (a, c) Source

(*>) :: (a, a0) -> (a, b) -> (a, b) Source

(<*) :: (a, a0) -> (a, b) -> (a, a0) Source

Arrow a => Applicative (WrappedArrow a b) Source

Since: base-2.1

Детали экземпляра

Определено в Control.Applicative

Методы

pure :: a0 -> WrappedArrow a b a0 Исходный код

(<*>) :: WrappedArrow a b (a0 -> b0) -> WrappedArrow a b a0 -> WrappedArrow a b b0 Исходный код

liftA2 :: (a0 -> b0 -> c) -> WrappedArrow a b a0 -> WrappedArrow a b b0 -> WrappedArrow a b c Исходный код

(*>) :: WrappedArrow a b a0 -> WrappedArrow a b b0 -> WrappedArrow a b b0 Исходный код

(<*) :: WrappedArrow a b a0 -> WrappedArrow a b b0 -> WrappedArrow a b a0 Исходный код

Applicative m => Applicative (Kleisli m a) Исходный код

С момента: base-4.14.0.0

Детали экземпляра

Определено в GHC.Internal.Control.Arrow

Методы

pure :: a0 -> Kleisli m a a0 Исходный код

(<*>) :: Kleisli m a (a0 -> b) -> Kleisli m a a0 -> Kleisli m a b Исходный код

liftA2 :: (a0 -> b -> c) -> Kleisli m a a0 -> Kleisli m a b -> Kleisli m a c Исходный код

(*>) :: Kleisli m a a0 -> Kleisli m a b -> Kleisli m a b Исходный код

(<*) :: Kleisli m a a0 -> Kleisli m a b -> Kleisli m a a0 Исходный код

Monoid m => Applicative (Const m :: Type -> Type) Исходный код

С момента: base-2.0.1

Детали экземпляра

Определено в GHC.Internal.Data.Functor.Const

Методы

pure :: a -> Const m a Исходный код

(<*>) :: Const m (a -> b) -> Const m a -> Const m b Исходный код

liftA2 :: (a -> b -> c) -> Const m a -> Const m b -> Const m c Исходный код

(*>) :: Const m a -> Const m b -> Const m b Исходный код

(<*) :: Const m a -> Const m b -> Const m a Исходный код

Monad m => Applicative (StateT s m) Исходный код

С момента: base-4.18.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Functor.Utils

Методы

pure :: a -> StateT s m a Исходный код

(<*>) :: StateT s m (a -> b) -> StateT s m a -> StateT s m b Исходный код

liftA2 :: (a -> b -> c) -> StateT s m a -> StateT s m b -> StateT s m c Исходный код

(*>) :: StateT s m a -> StateT s m b -> StateT s m b Исходный код

(<*) :: StateT s m a -> StateT s m b -> StateT s m a Исходный код

Applicative f => Applicative (Ap f) Исходный код

С момента: base-4.12.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Monoid

Методы

pure :: a -> Ap f a Исходный код

(<*>) :: Ap f (a -> b) -> Ap f a -> Ap f b Исходный код

liftA2 :: (a -> b -> c) -> Ap f a -> Ap f b -> Ap f c Исходный код

(*>) :: Ap f a -> Ap f b -> Ap f b Исходный код

(<*) :: Ap f a -> Ap f b -> Ap f a Исходный код

Applicative f => Applicative (Alt f) Исходный код

С момента: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Semigroup.Internal

Методы

pure :: a -> Alt f a Исходный код

(<*>) :: Alt f (a -> b) -> Alt f a -> Alt f b Исходный код

liftA2 :: (a -> b -> c) -> Alt f a -> Alt f b -> Alt f c Исходный код

(*>) :: Alt f a -> Alt f b -> Alt f b Исходный код

(<*) :: Alt f a -> Alt f b -> Alt f a Исходный код

(Generic1 f, Applicative (Rep1 f)) => Applicative (Generically1 f) Исходный код

С момента: base-4.17.0.0

Детали экземпляра

Определено в GHC.Internal.Generics

Методы

pure :: a -> Generically1 f a Исходный код

(<*>) :: Generically1 f (a -> b) -> Generically1 f a -> Generically1 f b Исходный код

liftA2 :: (a -> b -> c) -> Generically1 f a -> Generically1 f b -> Generically1 f c Исходный код

(*>) :: Generically1 f a -> Generically1 f b -> Generically1 f b Исходный код

(<*) :: Generically1 f a -> Generically1 f b -> Generically1 f a Исходный код

Applicative f => Applicative (Rec1 f) Исходный код

С момента: base-4.9.0.0

Детали экземпляра

Определено в GHC.Internal.Generics

Методы

pure :: a -> Rec1 f a Исходный код

(<*>) :: Rec1 f (a -> b) -> Rec1 f a -> Rec1 f b Исходный код

liftA2 :: (a -> b -> c) -> Rec1 f a -> Rec1 f b -> Rec1 f c Исходный код

(*>) :: Rec1 f a -> Rec1 f b -> Rec1 f b Исходный код

(<*) :: Rec1 f a -> Rec1 f b -> Rec1 f a Исходный код

(Моноид a, Моноид b) => Applicative ((,,) a b) Исходный код

С момента: base-4.14.0.0

Детали экземпляра

Определено в GHC.Internal.Base

Методы

pure :: a0 -> (a, b, a0) Исходный код

(<*>) :: (a, b, a0 -> b0) -> (a, b, a0) -> (a, b, b0) Исходный код

liftA2 :: (a0 -> b0 -> c) -> (a, b, a0) -> (a, b, b0) -> (a, b, c) Исходный код

(*>) :: (a, b, a0) -> (a, b, b0) -> (a, b, b0) Исходный код

(<*) :: (a, b, a0) -> (a, b, b0) -> (a, b, a0) Исходный код

(Applicative f, Applicative g) => Applicative (Product f g) Исходный код

С момента: base-4.9.0.0

Детали экземпляра

Определено в Data.Functor.Product

Методы

pure :: a -> Product f g a Исходный код

(<*>) :: Product f g (a -> b) -> Product f g a -> Product f g b Исходный код

liftA2 :: (a -> b -> c) -> Product f g a -> Product f g b -> Product f g c Исходный код

(*>) :: Product f g a -> Product f g b -> Product f g b Исходный код

(<*) :: Product f g a -> Product f g b -> Product f g a Исходный код

(Applicative f, Applicative g) => Applicative (f :*: g) Исходный код

С момента: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Generics

Методы

pure :: a -> (f :*: g) a Исходный код

(<*>) :: (f :*: g) (a -> b) -> (f :*: g) a -> (f :*: g) b Исходный код

liftA2 :: (a -> b -> c) -> (f :*: g) a -> (f :*: g) b -> (f :*: g) c Исходный код

(*>) :: (f :*: g) a -> (f :*: g) b -> (f :*: g) b Исходный код

(<*) :: (f :*: g) a -> (f :*: g) b -> (f :*: g) a Исходный код

Monoid c => Applicative (K1 i c :: Тип -> Тип) Исходный код

С момента выпуска: base-4.12.0.0

Подробности экземпляра

Определено в GHC.Internal.Generics

Методы

pure :: a -> K1 i c a Исходный код

(<*>) :: K1 i c (a -> b) -> K1 i c a -> K1 i c b Исходный код

liftA2 :: (a -> b -> c0) -> K1 i c a -> K1 i c b -> K1 i c c0 Исходный код

(*>) :: K1 i c a -> K1 i c b -> K1 i c b Исходный код

(<*) :: K1 i c a -> K1 i c b -> K1 i c a Исходный код

(Моноид a, Моноид b, Моноид c) => Applicative ((,,,) a b c) Исходный код

С момента выпуска: base-4.14.0.0

Подробности экземпляра

Определено в GHC.Internal.Base

Методы

pure :: a0 -> (a, b, c, a0) Исходный код

(<*>) :: (a, b, c, a0 -> b0) -> (a, b, c, a0) -> (a, b, c, b0) Исходный код

liftA2 :: (a0 -> b0 -> c0) -> (a, b, c, a0) -> (a, b, c, b0) -> (a, b, c, c0) Исходный код

(*>) :: (a, b, c, a0) -> (a, b, c, b0) -> (a, b, c, b0) Исходный код

(<*) :: (a, b, c, a0) -> (a, b, c, b0) -> (a, b, c, a0) Исходный код

Applicative ((->) r) Исходный код

С момента выпуска: base-2.1

Подробности экземпляра

Определено в GHC.Internal.Base

Методы

pure :: a -> r -> a Исходный код

(<*>) :: (r -> (a -> b)) -> (r -> a) -> r -> b Исходный код

liftA2 :: (a -> b -> c) -> (r -> a) -> (r -> b) -> r -> c Исходный код

(*>) :: (r -> a) -> (r -> b) -> r -> b Исходный код

(<*) :: (r -> a) -> (r -> b) -> r -> a Исходный код

(Applicative f, Applicative g) => Applicative (Compose f g) Исходный код

С момента выпуска: base-4.9.0.0

Подробности экземпляра

Определено в Data.Functor.Compose

Методы

pure :: a -> Compose f g a Исходный код

(<*>) :: Compose f g (a -> b) -> Compose f g a -> Compose f g b Исходный код

liftA2 :: (a -> b -> c) -> Compose f g a -> Compose f g b -> Compose f g c Исходный код

(*>) :: Compose f g a -> Compose f g b -> Compose f g b Исходный код

(<*) :: Compose f g a -> Compose f g b -> Compose f g a Исходный код

(Applicative f, Applicative g) => Applicative (f :.: g) Исходный код

С тех пор как: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Generics

Методы

pure :: a -> (f :.: g) a Исходный код

(<*>) :: (f :.: g) (a -> b) -> (f :.: g) a -> (f :.: g) b Исходный код

liftA2 :: (a -> b -> c) -> (f :.: g) a -> (f :.: g) b -> (f :.: g) c Исходный код

(*>) :: (f :.: g) a -> (f :.: g) b -> (f :.: g) b Исходный код

(<*) :: (f :.: g) a -> (f :.: g) b -> (f :.: g) a Исходный код

Applicative f => Applicative (M1 i c f) Исходный код

С тех пор как: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Generics

Методы

pure :: a -> M1 i c f a Исходный код

(<*>) :: M1 i c f (a -> b) -> M1 i c f a -> M1 i c f b Исходный код

liftA2 :: (a -> b -> c0) -> M1 i c f a -> M1 i c f b -> M1 i c f c0 Исходный код

(*>) :: M1 i c f a -> M1 i c f b -> M1 i c f b Исходный код

(<*) :: M1 i c f a -> M1 i c f b -> M1 i c f a Исходный код

Альтернативы

class Applicative f => Alternative (f :: Тип -> Тип) where Исходный код

Моноид на функциональных приложениях.

Если определено, some и many должны быть наименьшими решениями уравнений:

  • some v = (:) <$> v <*> many v
  • many v = some v <|> pure []
Примеры
Развернуть
>>> Nothing <|> Just 42
Just 42
>>> [1, 2] <|> [3, 4]
[1,2,3,4]
>>> empty <|> print (2^15)
32768

Минимальное полное определение

empty, (<|>)

Методы

empty :: f a Source

Тождество <|>

empty <|> a     == a
a     <|> empty == a

(<|>) :: f a -> f a -> f a infixl 3 Source

Ассоциативная бинарная операция

some :: f a -> f [a] Source

Один или более.

Примеры
Развернуть
>>> some (putStr "la")
lalalalalalalalala... * goes on forever *
>>> some Nothing
nothing
>>> take 5 <$> some (Just 1)
* hangs forever *

Обратите внимание, что эту функцию можно использовать с парсерами, основанными на аппликативных функциях. В этом случае some parser будет пытаться разобрать parser один или более раз, пока не произойдёт ошибка.

many :: f a -> f [a] Source

Ноль или более.

Примеры
Развернуть
>>> many (putStr "la")
lalalalalalalalala... * goes on forever *
>>> many Nothing
Just []
>>> take 5 <$> many (Just 1)
* hangs forever *

Обратите внимание, что эту функцию можно использовать с парсерами, основанными на аппликативных функциях. В этом случае many parser будет пытаться разобрать parser ноль или более раз, пока не произойдёт ошибка.

Экземпляры
Подробности о экземплярах
Alternative STM Источник

Берёт первое не-retryющее STM действие.

С версии: base-4.8.0.0

Подробности о экземпляре

Определено в GHC.Internal.Conc.Sync

Методы

empty :: STM a Источник

(<|>) :: STM a -> STM a -> STM a Источник

some :: STM a -> STM [a] Источник

many :: STM a -> STM [a] Источник

Alternative ZipList Источник

С версии: base-4.11.0.0

Подробности о экземпляре

Определено в GHC.Internal.Functor.ZipList

Методы

empty :: ZipList a Источник

(<|>) :: ZipList a -> ZipList a -> ZipList a Источник

some :: ZipList a -> ZipList [a] Источник

many :: ZipList a -> ZipList [a] Источник

Alternative P Источник

С версии: base-4.5.0.0

Подробности о экземпляре

Определено в GHC.Internal.Text.ParserCombinators.ReadP

Методы

empty :: P a Источник

(<|>) :: P a -> P a -> P a Источник

some :: P a -> P [a] Источник

many :: P a -> P [a] Источник

Alternative ReadP Источник

С версии: base-4.6.0.0

Подробности о экземпляре

Определено в GHC.Internal.Text.ParserCombinators.ReadP

Методы

empty :: ReadP a Источник

(<|>) :: ReadP a -> ReadP a -> ReadP a Источник

some :: ReadP a -> ReadP [a] Источник

many :: ReadP a -> ReadP [a] Источник

Alternative ReadPrec Источник

С версии: base-4.6.0.0

Подробности о экземпляре

Определено в GHC.Internal.Text.ParserCombinators.ReadPrec

Методы

empty :: ReadPrec a Источник

(<|>) :: ReadPrec a -> ReadPrec a -> ReadPrec a Источник

some :: ReadPrec a -> ReadPrec [a] Источник

many :: ReadPrec a -> ReadPrec [a] Источник

Alternative IO Source

Возвращает результат первого небросающего IO действия. empty вызывает исключение.

Since: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Base

Методы

empty :: IO a Source

(<|>) :: IO a -> IO a -> IO a Source

some :: IO a -> IO [a] Source

many :: IO a -> IO [a] Source

Alternative Maybe Source

Выбирает самое левое Just значение или, альтернативно, Nothing.

Since: base-2.1

Подробности экземпляра

Определено в GHC.Internal.Base

Методы

empty :: Maybe a Source

(<|>) :: Maybe a -> Maybe a -> Maybe a Source

some :: Maybe a -> Maybe [a] Source

many :: Maybe a -> Maybe [a] Source

Alternative [] Source

Объединяет списки путём конкатенации, начиная с пустого списка.

Since: base-2.1

Подробности экземпляра

Определено в GHC.Internal.Base

Методы

empty :: [a] Source

(<|>) :: [a] -> [a] -> [a] Source

some :: [a] -> [[a]] Source

many :: [a] -> [[a]] Source

MonadPlus m => Alternative (WrappedMonad m) Source

Since: base-2.1

Подробности экземпляра

Определено в Control.Applicative

Методы

empty :: WrappedMonad m a Source

(<|>) :: WrappedMonad m a -> WrappedMonad m a -> WrappedMonad m a Source

some :: WrappedMonad m a -> WrappedMonad m [a] Source

many :: WrappedMonad m a -> WrappedMonad m [a] Source

ArrowPlus a => Alternative (ArrowMonad a) Source

Since: base-4.6.0.0

Подробности экземпляра

Определено в GHC.Internal.Control.Arrow

Методы

empty :: ArrowMonad a a0 Source

(<|>) :: ArrowMonad a a0 -> ArrowMonad a a0 -> ArrowMonad a a0 Source

some :: ArrowMonad a a0 -> ArrowMonad a [a0] Source

many :: ArrowMonad a a0 -> ArrowMonad a [a0] Source

Alternative (Proxy :: Type -> Type) Source

Since: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Proxy

Методы

empty :: Proxy a Источник

(<|>) :: Proxy a -> Proxy a -> Proxy a Источник

some :: Proxy a -> Proxy [a] Источник

many :: Proxy a -> Proxy [a] Источник

Alternative (U1 :: Type -> Type) Источник

С версии: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Generics

Методы

empty :: U1 a Источник

(<|>) :: U1 a -> U1 a -> U1 a Источник

some :: U1 a -> U1 [a] Источник

many :: U1 a -> U1 [a] Источник

(ArrowZero a, ArrowPlus a) => Alternative (WrappedArrow a b) Источник

С версии: base-2.1

Подробности экземпляра

Определено в Control.Applicative

Методы

empty :: WrappedArrow a b a0 Источник

(<|>) :: WrappedArrow a b a0 -> WrappedArrow a b a0 -> WrappedArrow a b a0 Источник

some :: WrappedArrow a b a0 -> WrappedArrow a b [a0] Источник

many :: WrappedArrow a b a0 -> WrappedArrow a b [a0] Источник

Alternative m => Alternative (Kleisli m a) Источник

С версии: base-4.14.0.0

Подробности экземпляра

Определено в GHC.Internal.Control.Arrow

Методы

empty :: Kleisli m a a0 Источник

(<|>) :: Kleisli m a a0 -> Kleisli m a a0 -> Kleisli m a a0 Источник

some :: Kleisli m a a0 -> Kleisli m a [a0] Источник

many :: Kleisli m a a0 -> Kleisli m a [a0] Источник

Alternative f => Alternative (Ap f) Источник

С версии: base-4.12.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Monoid

Методы

empty :: Ap f a Источник

(<|>) :: Ap f a -> Ap f a -> Ap f a Источник

some :: Ap f a -> Ap f [a] Источник

many :: Ap f a -> Ap f [a] Источник

Alternative f => Alternative (Alt f) Источник

С версии: base-4.8.0.0

Информация о экземпляре

Определено в GHC.Internal.Data.Semigroup.Internal

Краткое описание методов

empty :: Alt f a Исходный код

(<|>) :: Alt f a -> Alt f a -> Alt f a Исходный код

some :: Alt f a -> Alt f [a] Исходный код

many :: Alt f a -> Alt f [a] Исходный код

(Generic1 f, Alternative (Rep1 f)) => Alternative (Generically1 f) Исходный код

С версии: base-4.17.0.0

Информация о экземпляре

Определено в GHC.Internal.Generics

Краткое описание методов

empty :: Generically1 f a Исходный код

(<|>) :: Generically1 f a -> Generically1 f a -> Generically1 f a Исходный код

some :: Generically1 f a -> Generically1 f [a] Исходный код

many :: Generically1 f a -> Generically1 f [a] Исходный код

Alternative f => Alternative (Rec1 f) Исходный код

С версии: base-4.9.0.0

Информация о экземпляре

Определено в GHC.Internal.Generics

Краткое описание методов

empty :: Rec1 f a Исходный код

(<|>) :: Rec1 f a -> Rec1 f a -> Rec1 f a Исходный код

some :: Rec1 f a -> Rec1 f [a] Исходный код

many :: Rec1 f a -> Rec1 f [a] Исходный код

(Alternative f, Alternative g) => Alternative (Product f g) Исходный код

С версии: base-4.9.0.0

Информация о экземпляре

Определено в Data.Functor.Product

Краткое описание методов

empty :: Product f g a Исходный код

(<|>) :: Product f g a -> Product f g a -> Product f g a Исходный код

some :: Product f g a -> Product f g [a] Исходный код

many :: Product f g a -> Product f g [a] Исходный код

(Alternative f, Alternative g) => Alternative (f :*: g) Исходный код

С версии: base-4.9.0.0

Информация о экземпляре

Определено в GHC.Internal.Generics

Краткое описание методов

empty :: (f :*: g) a Исходный код

(<|>) :: (f :*: g) a -> (f :*: g) a -> (f :*: g) a Исходный код

some :: (f :*: g) a -> (f :*: g) [a] Исходный код

many :: (f :*: g) a -> (f :*: g) [a] Исходный код

(Alternative f, Applicative g) => Alternative (Compose f g) Source

Since: base-4.9.0.0

Подробности экземпляра

Определено в Data.Functor.Compose

Методы

empty :: Compose f g a Source

(<|>) :: Compose f g a -> Compose f g a -> Compose f g a Source

some :: Compose f g a -> Compose f g [a] Source

many :: Compose f g a -> Compose f g [a] Source

(Alternative f, Applicative g) => Alternative (f :.: g) Source

Since: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Generics

Методы

empty :: (f :.: g) a Source

(<|>) :: (f :.: g) a -> (f :.: g) a -> (f :.: g) a Source

some :: (f :.: g) a -> (f :.: g) [a] Source

many :: (f :.: g) a -> (f :.: g) [a] Source

Alternative f => Alternative (M1 i c f) Source

Since: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Generics

empty :: M1 i c f a Source

(<|>) :: M1 i c f a -> M1 i c f a -> M1 i c f a Source

some :: M1 i c f a -> M1 i c f [a] Source

many :: M1 i c f a -> M1 i c f [a] Source

Примеры

newtype Const a (b :: k) Source

Функтор Const.

Примеры
Развернуть
>>> fmap (++ "World") (Const "Hello")
Const "Hello"

Поскольку мы игнорируем второй параметр типа в Const, экземпляр Applicative, который имеет (<*>) :: Monoid m => Const m (a -> b) -> Const m a -> Const m b, по существу преобразуется в Monoid m => m -> m -> m, что является (<>)

>>> Const [1, 2, 3] <*> Const [4, 5, 6]
Const [1,2,3,4,5,6]

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

Const

Поля

  • getConst :: a
Экземпляры
Подробности экземпляров
Generic1 (Const a :: k -> Type) Source
Instance details

Определено в GHC.Internal.Data.Functor.Const

Связанные типы

type Rep1 (Const a :: k -> Type)

Since: base-4.9.0.0

Instance details

Определено в GHC.Internal.Data.Functor.Const

type Rep1 (Const a :: k -> Type) = D1 ('MetaData "Const" "GHC.Internal.Data.Functor.Const" "ghc-internal" 'True) (C1 ('MetaCons "Const" 'PrefixI 'True) (S1 ('MetaSel ('Just "getConst") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))

Методы

from1 :: forall (a0 :: k). Const a a0 -> Rep1 (Const a :: k -> Type) a0 Source

to1 :: forall (a0 :: k). Rep1 (Const a :: k -> Type) a0 -> Const a a0 Source

Bifoldable (Const :: Type -> Type -> Type) Source

Since: base-4.10.0.0

Instance details

Определено в Data.Bifoldable

Методы

bifold :: Monoid m => Const m m -> m Source

bifoldMap :: Monoid m => (a -> m) -> (b -> m) -> Const a b -> m Source

bifoldr :: (a -> c -> c) -> (b -> c -> c) -> c -> Const a b -> c Source

bifoldl :: (c -> a -> c) -> (c -> b -> c) -> c -> Const a b -> c Source

Bifoldable1 (Const :: Type -> Type -> Type) Source
Instance details

Определено в Data.Bifoldable1

Методы

bifold1 :: Semigroup m => Const m m -> m Source

bifoldMap1 :: Semigroup m => (a -> m) -> (b -> m) -> Const a b -> m Source

Bifunctor (Const :: Type -> Type -> Type) Source

Since: base-4.8.0.0

Instance details

Определено в Data.Bifunctor

Методы

bimap :: (a -> b) -> (c -> d) -> Const a c -> Const b d Source

first :: (a -> b) -> Const a c -> Const b c Source

second :: (b -> c) -> Const a b -> Const a c Source

Bitraversable (Const :: Type -> Type -> Type) Source

Since: base-4.10.0.0

Instance details

Определено в Data.Bitraversable

Методы

bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> Const a b -> f (Const c d) Source

Eq2 (Const :: Type -> Type -> Type) Source

Since: base-4.9.0.0

Подробные сведения об экземпляре

Определено в Data.Functor.Classes

Методы

liftEq2 :: (a -> b -> Bool) -> (c -> d -> Bool) -> Const a c -> Const b d -> Bool Источник

Ord2 (Const :: Type -> Type -> Type) Источник

С: base-4.9.0.0

Подробные сведения об экземпляре

Определено в Data.Functor.Classes

Методы

liftCompare2 :: (a -> b -> Ordering) -> (c -> d -> Ordering) -> Const a c -> Const b d -> Ordering Источник

Read2 (Const :: Type -> Type -> Type) Источник

С: base-4.9.0.0

Подробные сведения об экземпляре

Определено в Data.Functor.Classes

Методы

liftReadsPrec2 :: (Int -> ReadS a) -> ReadS [a] -> (Int -> ReadS b) -> ReadS [b] -> Int -> ReadS (Const a b) Источник

liftReadList2 :: (Int -> ReadS a) -> ReadS [a] -> (Int -> ReadS b) -> ReadS [b] -> ReadS [Const a b] Источник

liftReadPrec2 :: ReadPrec a -> ReadPrec [a] -> ReadPrec b -> ReadPrec [b] -> ReadPrec (Const a b) Источник

liftReadListPrec2 :: ReadPrec a -> ReadPrec [a] -> ReadPrec b -> ReadPrec [b] -> ReadPrec [Const a b] Источник

Show2 (Const :: Type -> Type -> Type) Источник

С: base-4.9.0.0

Подробные сведения об экземпляре

Определено в Data.Functor.Classes

Методы

liftShowsPrec2 :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> (Int -> b -> ShowS) -> ([b] -> ShowS) -> Int -> Const a b -> ShowS Источник

liftShowList2 :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> (Int -> b -> ShowS) -> ([b] -> ShowS) -> [Const a b] -> ShowS Источник

Eq a => Eq1 (Const a :: Type -> Type) Источник

С: base-4.9.0.0

Подробные сведения об экземпляре

Определено в Data.Functor.Classes

Методы

liftEq :: (a0 -> b -> Bool) -> Const a a0 -> Const a b -> Bool Источник

Ord a => Ord1 (Const a :: Type -> Type) Источник

С: base-4.9.0.0

Подробные сведения об экземпляре

Определено в Data.Functor.Classes

Методы

liftCompare :: (a0 -> b -> Ordering) -> Const a a0 -> Const a b -> Ordering Источник

Read a => Read1 (Const a :: Type -> Type) Source

Since: base-4.9.0.0

Подробности экземпляра

Определено в Data.Functor.Classes

Методы

liftReadsPrec :: (Int -> ReadS a0) -> ReadS [a0] -> Int -> ReadS (Const a a0) Source

liftReadList :: (Int -> ReadS a0) -> ReadS [a0] -> ReadS [Const a a0] Source

liftReadPrec :: ReadPrec a0 -> ReadPrec [a0] -> ReadPrec (Const a a0) Source

liftReadListPrec :: ReadPrec a0 -> ReadPrec [a0] -> ReadPrec [Const a a0] Source

Show a => Show1 (Const a :: Type -> Type) Source

Since: base-4.9.0.0

Подробности экземпляра

Определено в Data.Functor.Classes

Методы

liftShowsPrec :: (Int -> a0 -> ShowS) -> ([a0] -> ShowS) -> Int -> Const a a0 -> ShowS Source

liftShowList :: (Int -> a0 -> ShowS) -> ([a0] -> ShowS) -> [Const a a0] -> ShowS Source

Contravariant (Const a :: Type -> Type) Source
Подробности экземпляра

Определено в Data.Functor.Contravariant

Методы

contramap :: (a' -> a0) -> Const a a0 -> Const a a' Source

(>$) :: b -> Const a b -> Const a a0 Source

Monoid m => Applicative (Const m :: Type -> Type) Source

Since: base-2.0.1

Подробности экземпляра

Определено в GHC.Internal.Data.Functor.Const

Методы

pure :: a -> Const m a Source

(<*>) :: Const m (a -> b) -> Const m a -> Const m b Source

liftA2 :: (a -> b -> c) -> Const m a -> Const m b -> Const m c Source

(*>) :: Const m a -> Const m b -> Const m b Source

(<*) :: Const m a -> Const m b -> Const m a Source

Functor (Const m :: Type -> Type) Source

Since: base-2.1

Подробности экземпляра

Определено в GHC.Internal.Data.Functor.Const

Краткое описание методов

fmap :: (a -> b) -> Const m a -> Const m b Источник

(<$) :: a -> Const m b -> Const m a Источник

Foldable (Const m :: Type -> Type) Источник

С версии: base-4.7.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Functor.Const

Краткое описание методов

fold :: Monoid m0 => Const m m0 -> m0 Источник

foldMap :: Monoid m0 => (a -> m0) -> Const m a -> m0 Источник

foldMap' :: Monoid m0 => (a -> m0) -> Const m a -> m0 Источник

foldr :: (a -> b -> b) -> b -> Const m a -> b Источник

foldr' :: (a -> b -> b) -> b -> Const m a -> b Источник

foldl :: (b -> a -> b) -> b -> Const m a -> b Источник

foldl' :: (b -> a -> b) -> b -> Const m a -> b Источник

foldr1 :: (a -> a -> a) -> Const m a -> a Источник

foldl1 :: (a -> a -> a) -> Const m a -> a Источник

toList :: Const m a -> [a] Источник

null :: Const m a -> Bool Источник

length :: Const m a -> Int Источник

elem :: Eq a => a -> Const m a -> Bool Источник

maximum :: Ord a => Const m a -> a Источник

minimum :: Ord a => Const m a -> a Источник

sum :: Num a => Const m a -> a Источник

product :: Num a => Const m a -> a Источник

Traversable (Const m :: Type -> Type) Источник

С версии: base-4.7.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Traversable

Краткое описание методов

traverse :: Applicative f => (a -> f b) -> Const m a -> f (Const m b) Источник

sequenceA :: Applicative f => Const m (f a) -> f (Const m a) Источник

mapM :: Monad m0 => (a -> m0 b) -> Const m a -> m0 (Const m b) Источник

sequence :: Monad m0 => Const m (m0 a) -> m0 (Const m a) Источник

Monoid a => Monoid (Const a b) Источник

С версии: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Functor.Const

Методы

mempty :: Const a b Исходный код

mappend :: Const a b -> Const a b -> Const a b Исходный код

mconcat :: [Const a b] -> Const a b Исходный код

Semigroup a => Semigroup (Const a b) Исходный код

С версии: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Functor.Const

Методы

(<>) :: Const a b -> Const a b -> Const a b Исходный код

sconcat :: NonEmpty (Const a b) -> Const a b Исходный код

stimes :: Integral b0 => b0 -> Const a b -> Const a b Исходный код

Bits a => Bits (Const a b) Исходный код

С версии: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Functor.Const

Краткое описание методов

(.&.) :: Const a b -> Const a b -> Const a b Источник

(.|.) :: Const a b -> Const a b -> Const a b Источник

xor :: Const a b -> Const a b -> Const a b Источник

complement :: Const a b -> Const a b Источник

shift :: Const a b -> Int -> Const a b Источник

rotate :: Const a b -> Int -> Const a b Источник

zeroBits :: Const a b Источник

bit :: Int -> Const a b Источник

setBit :: Const a b -> Int -> Const a b Источник

clearBit :: Const a b -> Int -> Const a b Источник

complementBit :: Const a b -> Int -> Const a b Источник

testBit :: Const a b -> Int -> Bool Источник

bitSizeMaybe :: Const a b -> Maybe Int Источник

bitSize :: Const a b -> Int Источник

isSigned :: Const a b -> Bool Источник

shiftL :: Const a b -> Int -> Const a b Источник

unsafeShiftL :: Const a b -> Int -> Const a b Источник

shiftR :: Const a b -> Int -> Const a b Источник

unsafeShiftR :: Const a b -> Int -> Const a b Источник

rotateL :: Const a b -> Int -> Const a b Источник

rotateR :: Const a b -> Int -> Const a b Источник

popCount :: Const a b -> Int Источник

FiniteBits a => FiniteBits (Const a b) Источник

С версии: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Functor.Const

Краткое описание методов

finiteBitSize :: Const a b -> Int Источник

countLeadingZeros :: Const a b -> Int Источник

countTrailingZeros :: Const a b -> Int Источник

(Typeable k, Data a, Typeable b) => Data (Const a b) Source

Since: base-4.10.0.0

Instance details

Defined in GHC.Internal.Data.Data

Методы

gfoldl :: (forall d b0. Data d => c (d -> b0) -> d -> c b0) -> (forall g. g -> c g) -> Const a b -> c (Const a b) Source

gunfold :: (forall b0 r. Data b0 => c (b0 -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Const a b) Source

toConstr :: Const a b -> Constr Source

dataTypeOf :: Const a b -> DataType Source

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Const a b)) Source

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Const a b)) Source

gmapT :: (forall b0. Data b0 => b0 -> b0) -> Const a b -> Const a b Source

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Const a b -> r Source

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Const a b -> r Source

gmapQ :: (forall d. Data d => d -> u) -> Const a b -> [u] Source

gmapQi :: Int -> (forall d. Data d => d -> u) -> Const a b -> u Source

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Const a b -> m (Const a b) Source

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Const a b -> m (Const a b) Source

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Const a b -> m (Const a b) Source

IsString a => IsString (Const a b) Source

Since: base-4.9.0.0

Instance details

Defined in GHC.Internal.Data.String

Методы

fromString :: String -> Const a b Source

Bounded a => Bounded (Const a b) Source

Since: base-4.9.0.0

Instance details

Defined in GHC.Internal.Data.Functor.Const

Методы

minBound :: Const a b Source

maxBound :: Const a b Source

Enum a => Enum (Const a b) Source

Since: base-4.9.0.0

Сведения об экземпляре

Определено в GHC.Internal.Data.Functor.Const

Методы

succ :: Const a b -> Const a b Исходный код

pred :: Const a b -> Const a b Исходный код

toEnum :: Int -> Const a b Исходный код

fromEnum :: Const a b -> Int Исходный код

enumFrom :: Const a b -> [Const a b] Исходный код

enumFromThen :: Const a b -> Const a b -> [Const a b] Исходный код

enumFromTo :: Const a b -> Const a b -> [Const a b] Исходный код

enumFromThenTo :: Const a b -> Const a b -> Const a b -> [Const a b] Исходный код

Floating a => Floating (Const a b) Исходный код

С момента: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Functor.Const

Методы

pi :: Const a b Источник

exp :: Const a b -> Const a b Источник

log :: Const a b -> Const a b Источник

sqrt :: Const a b -> Const a b Источник

(**) :: Const a b -> Const a b -> Const a b Источник

logBase :: Const a b -> Const a b -> Const a b Источник

sin :: Const a b -> Const a b Источник

cos :: Const a b -> Const a b Источник

tan :: Const a b -> Const a b Источник

asin :: Const a b -> Const a b Источник

acos :: Const a b -> Const a b Источник

atan :: Const a b -> Const a b Источник

sinh :: Const a b -> Const a b Источник

cosh :: Const a b -> Const a b Источник

tanh :: Const a b -> Const a b Источник

asinh :: Const a b -> Const a b Источник

acosh :: Const a b -> Const a b Источник

atanh :: Const a b -> Const a b Источник

log1p :: Const a b -> Const a b Источник

expm1 :: Const a b -> Const a b Источник

log1pexp :: Const a b -> Const a b Источник

log1mexp :: Const a b -> Const a b Источник

RealFloat a => RealFloat (Const a b) Источник

С момента: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Functor.Const

Методы

floatRadix :: Const a b -> Целое Исходный код

floatDigits :: Const a b -> Целое Исходный код

floatRange :: Const a b -> (Целое, Целое) Исходный код

decodeFloat :: Const a b -> (Целое, Целое) Исходный код

encodeFloat :: Целое -> Целое -> Const a b Исходный код

exponent :: Const a b -> Целое Исходный код

significand :: Const a b -> Const a b Исходный код

scaleFloat :: Целое -> Const a b -> Const a b Исходный код

isNaN :: Const a b -> Булево Исходный код

isInfinite :: Const a b -> Булево Исходный код

isDenormalized :: Const a b -> Булево Исходный код

isNegativeZero :: Const a b -> Булево Исходный код

isIEEE :: Const a b -> Булево Исходный код

atan2 :: Const a b -> Const a b -> Const a b Исходный код

Storable a => Storable (Const a b) Исходный код

С момента: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Functor.Const

Методы

sizeOf :: Const a b -> Целое Исходный код

alignment :: Const a b -> Целое Исходный код

peekElemOff :: Указатель (Const a b) -> Целое -> IO (Const a b) Исходный код

pokeElemOff :: Указатель (Const a b) -> Целое -> Const a b -> IO () Исходный код

peekByteOff :: Указатель b0 -> Целое -> IO (Const a b) Исходный код

pokeByteOff :: Указатель b0 -> Целое -> Const a b -> IO () Исходный код

peek :: Указатель (Const a b) -> IO (Const a b) Исходный код

poke :: Указатель (Const a b) -> Const a b -> IO () Исходный код

Generic (Const a b) Исходный код
Детали экземпляра

Определено в GHC.Internal.Data.Functor.Const

Связанные типы

type Rep (Const a b)

С момента: base-4.9.0.0

Детали экземпляра

Определено в GHC.Internal.Data.Functor.Const

type Rep (Const a b) = D1 ('MetaData "Const" "GHC.Internal.Data.Functor.Const" "ghc-internal" 'True) (C1 ('MetaCons "Const" 'PrefixI 'True) (S1 ('MetaSel ('Just "getConst") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))

Методы

from :: Const a b -> Rep (Const a b) x Исходный код

to :: Rep (Const a b) x -> Const a b Исходный код

Ix a => Ix (Const a b) Исходный код

С момента: base-4.9.0.0

Детали экземпляра

Определено в GHC.Internal.Data.Functor.Const

Методы

range :: (Const a b, Const a b) -> [Const a b] Исходный код

index :: (Const a b, Const a b) -> Const a b -> Int Исходный код

unsafeIndex :: (Const a b, Const a b) -> Const a b -> Int Исходный код

inRange :: (Const a b, Const a b) -> Const a b -> Bool Исходный код

rangeSize :: (Const a b, Const a b) -> Int Исходный код

unsafeRangeSize :: (Const a b, Const a b) -> Int Исходный код

Num a => Num (Const a b) Исходный код

С момента: base-4.9.0.0

Детали экземпляра

Определено в GHC.Internal.Data.Functor.Const

Методы

(+) :: Const a b -> Const a b -> Const a b Исходный код

(-) :: Const a b -> Const a b -> Const a b Исходный код

(*) :: Const a b -> Const a b -> Const a b Исходный код

negate :: Const a b -> Const a b Исходный код

abs :: Const a b -> Const a b Исходный код

signum :: Const a b -> Const a b Исходный код

fromInteger :: Integer -> Const a b Исходный код

Read a => Read (Const a b) Исходный код

Этот экземпляр был бы эквивалентен производным экземплярам Const newtype, если бы поле getConst было удалено

С момента: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Functor.Const

Методы

readsPrec :: Целое -> ReadS (Const a b) Исходный код

readList :: ReadS [Const a b] Исходный код

readPrec :: ReadPrec (Const a b) Исходный код

readListPrec :: ReadPrec [Const a b] Исходный код

Дробное a => Дробное (Const a b) Исходный код

С версии: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Functor.Const

Методы

(/) :: Const a b -> Const a b -> Const a b Исходный код

recip :: Const a b -> Const a b Исходный код

fromRational :: Рациональное -> Const a b Исходный код

Целочисленное a => Целочисленное (Const a b) Исходный код

С версии: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Functor.Const

Методы

quot :: Const a b -> Const a b -> Const a b Исходный код

rem :: Const a b -> Const a b -> Const a b Исходный код

div :: Const a b -> Const a b -> Const a b Исходный код

mod :: Const a b -> Const a b -> Const a b Исходный код

quotRem :: Const a b -> Const a b -> (Const a b, Const a b) Исходный код

divMod :: Const a b -> Const a b -> (Const a b, Const a b) Исходный код

toInteger :: Const a b -> Целое Исходный код

Действительное a => Действительное (Const a b) Исходный код

С версии: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Functor.Const

Методы

toRational :: Const a b -> Рациональное Исходный код

Действительная дробь a => Действительная дробь (Const a b) Исходный код

С версии: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Functor.Const

Методы

properFraction :: Integral b0 => Const a b -> (b0, Const a b) Исходный код

truncate :: Integral b0 => Const a b -> b0 Исходный код

round :: Integral b0 => Const a b -> b0 Исходный код

ceiling :: Integral b0 => Const a b -> b0 Исходный код

floor :: Integral b0 => Const a b -> b0 Исходный код

Show a => Show (Const a b) Исходный код

Этот экземпляр был бы эквивалентен производным экземплярам Const newtype, если бы поле getConst было удалено

С момента: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Functor.Const

Методы

showsPrec :: Int -> Const a b -> ShowS Исходный код

show :: Const a b -> String Исходный код

showList :: [Const a b] -> ShowS Исходный код

Eq a => Eq (Const a b) Исходный код

С момента: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Functor.Const

Методы

(==) :: Const a b -> Const a b -> Bool Исходный код

(/=) :: Const a b -> Const a b -> Bool Исходный код

Ord a => Ord (Const a b) Исходный код

С момента: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Functor.Const

Методы

compare :: Const a b -> Const a b -> Ordering Исходный код

(<) :: Const a b -> Const a b -> Bool Исходный код

(<=) :: Const a b -> Const a b -> Bool Исходный код

(>) :: Const a b -> Const a b -> Bool Исходный код

(>=) :: Const a b -> Const a b -> Bool Исходный код

max :: Const a b -> Const a b -> Const a b Исходный код

min :: Const a b -> Const a b -> Const a b Исходный код

type Rep1 (Const a :: k -> Type) Исходный код

С момента: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Functor.Const

type Rep1 (Const a :: k -> Тип) = D1 ('MetaData "Const" "GHC.Internal.Data.Functor.Const" "ghc-internal" 'True) (C1 ('MetaCons "Const" 'PrefixI 'True) (S1 ('MetaSel ('Just "getConst") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))
type Rep (Const a b) Исходный код

С момента: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Internal.Data.Functor.Const

type Rep (Const a b) = D1 ('MetaData "Const" "GHC.Internal.Data.Functor.Const" "ghc-internal" 'True) (C1 ('MetaCons "Const" 'PrefixI 'True) (S1 ('MetaSel ('Just "getConst") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))

newtype ОборачиваемыйМонад (m :: Тип -> Тип) a Исходный код

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

WrapMonad

Поля

  • unwrapMonad :: m a
Экземпляры
Подробности об экземплярах
Generic1 (WrappedMonad m :: Type -> Type) Источник
Подробности об экземпляре

Определено в Control.Applicative

Связанные типы

type Rep1 (WrappedMonad m :: Type -> Type)

С версии: base-4.7.0.0

Подробности об экземпляре

Определено в Control.Applicative

type Rep1 (WrappedMonad m :: Type -> Type) = D1 ('MetaData "WrappedMonad" "Control.Applicative" "base-4.21.0.0-8e62" 'True) (C1 ('MetaCons "WrapMonad" 'PrefixI 'True) (S1 ('MetaSel ('Just "unwrapMonad") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 m)))

Методы

from1 :: WrappedMonad m a -> Rep1 (WrappedMonad m) a Источник

to1 :: Rep1 (WrappedMonad m) a -> WrappedMonad m a Источник

MonadPlus m => Alternative (WrappedMonad m) Источник

С версии: base-2.1

Подробности об экземпляре

Определено в Control.Applicative

Методы

empty :: WrappedMonad m a Источник

(<|>) :: WrappedMonad m a -> WrappedMonad m a -> WrappedMonad m a Источник

some :: WrappedMonad m a -> WrappedMonad m [a] Источник

many :: WrappedMonad m a -> WrappedMonad m [a] Источник

Monad m => Applicative (WrappedMonad m) Источник

С версии: base-2.1

Подробности об экземпляре

Определено в Control.Applicative

Методы

pure :: a -> WrappedMonad m a Источник

(<*>) :: WrappedMonad m (a -> b) -> WrappedMonad m a -> WrappedMonad m b Источник

liftA2 :: (a -> b -> c) -> WrappedMonad m a -> WrappedMonad m b -> WrappedMonad m c Источник

(*>) :: WrappedMonad m a -> WrappedMonad m b -> WrappedMonad m b Источник

(<*) :: WrappedMonad m a -> WrappedMonad m b -> WrappedMonad m a Источник

Monad m => Functor (WrappedMonad m) Источник

С версии: base-2.1

Подробности об экземпляре

Определено в Control.Applicative

Методы

fmap :: (a -> b) -> WrappedMonad m a -> WrappedMonad m b Источник

(<$) :: a -> WrappedMonad m b -> WrappedMonad m a Источник

Monad m => Monad (WrappedMonad m) Источник

С версии: base-4.7.0.0

Instance details

Определено в Control.Applicative

Методы

(>>=) :: WrappedMonad m a -> (a -> WrappedMonad m b) -> WrappedMonad m b Source

(>>) :: WrappedMonad m a -> WrappedMonad m b -> WrappedMonad m b Source

return :: a -> WrappedMonad m a Source

(Typeable m, Typeable a, Data (m a)) => Data (WrappedMonad m a) Source

С версии: base-4.14.0.0

Instance details

Определено в Control.Applicative

Методы

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> WrappedMonad m a -> c (WrappedMonad m a) Source

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (WrappedMonad m a) Source

toConstr :: WrappedMonad m a -> Constr Source

dataTypeOf :: WrappedMonad m a -> DataType Source

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (WrappedMonad m a)) Source

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (WrappedMonad m a)) Source

gmapT :: (forall b. Data b => b -> b) -> WrappedMonad m a -> WrappedMonad m a Source

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> WrappedMonad m a -> r Source

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> WrappedMonad m a -> r Source

gmapQ :: (forall d. Data d => d -> u) -> WrappedMonad m a -> [u] Source

gmapQi :: Int -> (forall d. Data d => d -> u) -> WrappedMonad m a -> u Source

gmapM :: Monad m0 => (forall d. Data d => d -> m0 d) -> WrappedMonad m a -> m0 (WrappedMonad m a) Source

gmapMp :: MonadPlus m0 => (forall d. Data d => d -> m0 d) -> WrappedMonad m a -> m0 (WrappedMonad m a) Source

gmapMo :: MonadPlus m0 => (forall d. Data d => d -> m0 d) -> WrappedMonad m a -> m0 (WrappedMonad m a) Source

Generic (WrappedMonad m a) Source
Подробности экземпляра

Определено в Control.Applicative

Связанные типы

type Rep (WrappedMonad m a)

С момента: base-4.7.0.0

Подробности экземпляра

Определено в Control.Applicative

type Rep (WrappedMonad m a) = D1 ('MetaData "WrappedMonad" "Control.Applicative" "base-4.21.0.0-8e62" 'True) (C1 ('MetaCons "WrapMonad" 'PrefixI 'True) (S1 ('MetaSel ('Just "unwrapMonad") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (m a))))

Методы

from :: WrappedMonad m a -> Rep (WrappedMonad m a) x Источник

to :: Rep (WrappedMonad m a) x -> WrappedMonad m a Источник

type Rep1 (WrappedMonad m :: Type -> Type) Источник

С момента: base-4.7.0.0

Подробности экземпляра

Определено в Control.Applicative

type Rep1 (WrappedMonad m :: Type -> Type) = D1 ('MetaData "WrappedMonad" "Control.Applicative" "base-4.21.0.0-8e62" 'True) (C1 ('MetaCons "WrapMonad" 'PrefixI 'True) (S1 ('MetaSel ('Just "unwrapMonad") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 m)))
type Rep (WrappedMonad m a) Источник

С момента: base-4.7.0.0

Подробности экземпляра

Определено в Control.Applicative

type Rep (WrappedMonad m a) = D1 ('MetaData "WrappedMonad" "Control.Applicative" "base-4.21.0.0-8e62" 'True) (C1 ('MetaCons "WrapMonad" 'PrefixI 'True) (S1 ('MetaSel ('Just "unwrapMonad") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (m a))))

newtype WrappedArrow (a :: Type -> Type -> Type) b c Источник

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

WrapArrow

Поля

  • unwrapArrow :: a b c
Экземпляры
Подробности экземпляров
Generic1 (WrappedArrow a b :: Type -> Type) Source
Подробности экземпляра

Определено в Control.Applicative

Связанные типы

type Rep1 (WrappedArrow a b :: Type -> Type)

С момента: base-4.7.0.0

Подробности экземпляра

Определено в Control.Applicative

type Rep1 (WrappedArrow a b :: Type -> Type) = D1 ('MetaData "WrappedArrow" "Control.Applicative" "base-4.21.0.0-8e62" 'True) (C1 ('MetaCons "WrapArrow" 'PrefixI 'True) (S1 ('MetaSel ('Just "unwrapArrow") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 (a b))))

Методы

from1 :: WrappedArrow a b a0 -> Rep1 (WrappedArrow a b) a0 Source

to1 :: Rep1 (WrappedArrow a b) a0 -> WrappedArrow a b a0 Source

(ArrowZero a, ArrowPlus a) => Alternative (WrappedArrow a b) Source

С момента: base-2.1

Подробности экземпляра

Определено в Control.Applicative

Методы

empty :: WrappedArrow a b a0 Source

(<|>) :: WrappedArrow a b a0 -> WrappedArrow a b a0 -> WrappedArrow a b a0 Source

some :: WrappedArrow a b a0 -> WrappedArrow a b [a0] Source

many :: WrappedArrow a b a0 -> WrappedArrow a b [a0] Source

Arrow a => Applicative (WrappedArrow a b) Source

С момента: base-2.1

Подробности экземпляра

Определено в Control.Applicative

Методы

pure :: a0 -> WrappedArrow a b a0 Source

(<*>) :: WrappedArrow a b (a0 -> b0) -> WrappedArrow a b a0 -> WrappedArrow a b b0 Source

liftA2 :: (a0 -> b0 -> c) -> WrappedArrow a b a0 -> WrappedArrow a b b0 -> WrappedArrow a b c Source

(*>) :: WrappedArrow a b a0 -> WrappedArrow a b b0 -> WrappedArrow a b b0 Source

(<*) :: WrappedArrow a b a0 -> WrappedArrow a b b0 -> WrappedArrow a b a0 Source

Arrow a => Functor (WrappedArrow a b) Source

С момента: base-2.1

Подробности экземпляра

Определено в Control.Applicative

Методы

fmap :: (a0 -> b0) -> WrappedArrow a b a0 -> WrappedArrow a b b0 Source

(<$) :: a0 -> WrappedArrow a b b0 -> WrappedArrow a b a0 Source

(Typeable a, Typeable b, Typeable c, Data (a b c)) => Data (WrappedArrow a b c) Source

С момента: base-4.14.0.0

Подробности экземпляра

Определено в Control.Applicative

Методы

gfoldl :: (forall d b0. Data d => c0 (d -> b0) -> d -> c0 b0) -> (forall g. g -> c0 g) -> WrappedArrow a b c -> c0 (WrappedArrow a b c) Исходный код

gunfold :: (forall b0 r. Data b0 => c0 (b0 -> r) -> c0 r) -> (forall r. r -> c0 r) -> Constr -> c0 (WrappedArrow a b c) Исходный код

toConstr :: WrappedArrow a b c -> Constr Исходный код

dataTypeOf :: WrappedArrow a b c -> DataType Исходный код

dataCast1 :: Typeable t => (forall d. Data d => c0 (t d)) -> Maybe (c0 (WrappedArrow a b c)) Исходный код

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c0 (t d e)) -> Maybe (c0 (WrappedArrow a b c)) Исходный код

gmapT :: (forall b0. Data b0 => b0 -> b0) -> WrappedArrow a b c -> WrappedArrow a b c Исходный код

Generic (WrappedArrow a b c) Исходный код
Подробности экземпляра

Определено в Control.Applicative

Связанные типы

type Rep (WrappedArrow a b c)

С версии: base-4.7.0.0

Подробности экземпляра

Определено в Control.Applicative

type Rep (WrappedArrow a b c) = D1 ('MetaData "WrappedArrow" "Control.Applicative" "base-4.21.0.0-8e62" 'True) (C1 ('MetaCons "WrapArrow" 'PrefixI 'True) (S1 ('MetaSel ('Just "unwrapArrow") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (a b c))))

Методы

from :: WrappedArrow a b c -> Rep (WrappedArrow a b c) x Исходный код

to :: Rep (WrappedArrow a b c) x -> WrappedArrow a b c Исходный код

type Rep1 (WrappedArrow a b :: Type -> Type) Исходный код

С версии: base-4.7.0.0

Подробности экземпляра

Определено в Control.Applicative

тип Rep1 (WrappedArrow a b :: Тип -> Тип) = D1 ('MetaData "WrappedArrow" "Control.Applicative" "base-4.21.0.0-8e62" 'True) (C1 ('MetaCons "WrapArrow" 'PrefixI 'True) (S1 ('MetaSel ('Just "unwrapArrow") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 (a b))))
тип Rep (WrappedArrow a b c) Исходный код

С момента: base-4.7.0.0

Подробности экземпляра

Определено в Control.Applicative

тип Rep (WrappedArrow a b c) = D1 ('MetaData "WrappedArrow" "Control.Applicative" "base-4.21.0.0-8e62" 'True) (C1 ('MetaCons "WrapArrow" 'PrefixI 'True) (S1 ('MetaSel ('Just "unwrapArrow") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (a b c))))

новый тип ZipList a Исходный код

Списки, но с Applicative фукнтором, основанным на объединении.

Примеры
Развернуть

В отличие от Applicative для List:

>>> (+) <$> [1, 2, 3] <*> [4, 5, 6]
[5,6,7,6,7,8,7,8,9]

Экземпляр Applicative для ZipList применяет операцию, объединяя элементы, аналогично zipWithN

>>> (+) <$> ZipList [1, 2, 3] <*> ZipList [4, 5, 6]
ZipList {getZipList = [5,7,9]}
>>> (,,,) <$> ZipList [1, 2] <*> ZipList [3, 4] <*> ZipList [5, 6] <*> ZipList [7, 8]
ZipList {getZipList = [(1,3,5,7),(2,4,6,8)]}
>>> ZipList [(+1), (^2), (/ 2)] <*> ZipList [5, 5, 5]
ZipList {getZipList = [6.0,25.0,2.5]}

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

ZipList

Поля

  • getZipList :: [a]
Примеры
Подробности примеров
Alternative ZipList Исходный код

С момента: base-4.11.0.0

Подробности примера

Определено в GHC.Internal.Functor.ZipList

Методы

empty :: ZipList a Исходный код

(<|>) :: ZipList a -> ZipList a -> ZipList a Исходный код

some :: ZipList a -> ZipList [a] Исходный код

many :: ZipList a -> ZipList [a] Исходный код

Applicative ZipList Исходный код
f <$> ZipList xs1 <*> ... <*> ZipList xsN
    = ZipList (zipWithN f xs1 ... xsN)

где zipWithN относится к функции zipWith соответствующей арности (zipWith, zipWith3, zipWith4, ...). Например:

(\a b c -> stimes c [a, b]) <$> ZipList "abcd" <*> ZipList "567" <*> ZipList [1..]
    = ZipList (zipWith3 (\a b c -> stimes c [a, b]) "abcd" "567" [1..])
    = ZipList {getZipList = ["a5","b6b6","c7c7c7"]}

С момента: base-2.1

Подробности примера

Определено в GHC.Internal.Functor.ZipList

Методы

pure :: a -> ZipList a Исходный код

(<*>) :: ZipList (a -> b) -> ZipList a -> ZipList b Исходный код

liftA2 :: (a -> b -> c) -> ZipList a -> ZipList b -> ZipList c Исходный код

(*>) :: ZipList a -> ZipList b -> ZipList b Исходный код

(<*) :: ZipList a -> ZipList b -> ZipList a Исходный код

Functor ZipList Исходный код

С момента: base-2.1

Подробности примера

Определено в GHC.Internal.Functor.ZipList

Методы

fmap :: (a -> b) -> ZipList a -> ZipList b Исходный код

(<$) :: a -> ZipList b -> ZipList a Исходный код

Foldable ZipList Исходный код

С момента: base-4.9.0.0

Подробные сведения об экземпляре

Определено в GHC.Internal.Functor.ZipList

Методы

fold :: Monoid m => ZipList m -> m Исходный код

foldMap :: Monoid m => (a -> m) -> ZipList a -> m Исходный код

foldMap' :: Monoid m => (a -> m) -> ZipList a -> m Исходный код

foldr :: (a -> b -> b) -> b -> ZipList a -> b Исходный код

foldr' :: (a -> b -> b) -> b -> ZipList a -> b Исходный код

foldl :: (b -> a -> b) -> b -> ZipList a -> b Исходный код

foldl' :: (b -> a -> b) -> b -> ZipList a -> b Исходный код

foldr1 :: (a -> a -> a) -> ZipList a -> a Исходный код

foldl1 :: (a -> a -> a) -> ZipList a -> a Исходный код

toList :: ZipList a -> [a] Исходный код

null :: ZipList a -> Boolean Исходный код

length :: ZipList a -> Число Исходный код

elem :: Eq a => a -> ZipList a -> Boolean Исходный код

maximum :: Ord a => ZipList a -> a Исходный код

minimum :: Ord a => ZipList a -> a Исходный код

sum :: Num a => ZipList a -> a Исходный код

product :: Num a => ZipList a -> a Исходный код

Traversable ZipList Исходный код

С момента: base-4.9.0.0

Подробные сведения об экземпляре

Определено в GHC.Internal.Functor.ZipList

Методы

traverse :: Applicative f => (a -> f b) -> ZipList a -> f (ZipList b) Исходный код

sequenceA :: Applicative f => ZipList (f a) -> f (ZipList a) Исходный код

mapM :: Monad m => (a -> m b) -> ZipList a -> m (ZipList b) Исходный код

sequence :: Monad m => ZipList (m a) -> m (ZipList a) Исходный код

Generic1 ZipList Исходный код
Instance details

Определено в GHC.Internal.Functor.ZipList

Связанные типы

type Rep1 ZipList

С версии: base-4.7.0.0

Instance details

Определено в GHC.Internal.Functor.ZipList

type Rep1 ZipList = D1 ('MetaData "ZipList" "GHC.Internal.Functor.ZipList" "ghc-internal" 'True) (C1 ('MetaCons "ZipList" 'PrefixI 'True) (S1 ('MetaSel ('Just "getZipList") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 [])))

Методы

from1 :: ZipList a -> Rep1 ZipList a Исходный код

to1 :: Rep1 ZipList a -> ZipList a Исходный код

Data a => Data (ZipList a) Исходный код

С версии: base-4.14.0.0

Instance details

Определено в GHC.Internal.Functor.ZipList

Методы

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ZipList a -> c (ZipList a) Исходный код

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (ZipList a) Исходный код

toConstr :: ZipList a -> Constr Исходный код

dataTypeOf :: ZipList a -> DataType Исходный код

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (ZipList a)) Исходный код

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (ZipList a)) Исходный код

gmapT :: (forall b. Data b => b -> b) -> ZipList a -> ZipList a Исходный код

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ZipList a -> r Исходный код

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ZipList a -> r Исходный код

gmapQ :: (forall d. Data d => d -> u) -> ZipList a -> [u] Исходный код

gmapQi :: Int -> (forall d. Data d => d -> u) -> ZipList a -> u Исходный код

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ZipList a -> m (ZipList a) Исходный код

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ZipList a -> m (ZipList a) Исходный код

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ZipList a -> m (ZipList a) Исходный код

Generic (ZipList a) Исходный код
Подробности экземпляра

Определено в GHC.Internal.Functor.ZipList

Связанные типы

type Rep (ZipList a)

С тех пор: base-4.7.0.0

Подробности экземпляра

Определено в GHC.Internal.Functor.ZipList

type Rep (ZipList a) = D1 ('MetaData "ZipList" "GHC.Internal.Functor.ZipList" "ghc-internal" 'True) (C1 ('MetaCons "ZipList" 'PrefixI 'True) (S1 ('MetaSel ('Just "getZipList") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [a])))

Методы

from :: ZipList a -> Rep (ZipList a) x Источник

to :: Rep (ZipList a) x -> ZipList a Источник

IsList (ZipList a) Источник

С тех пор: base-4.15.0.0

Подробности экземпляра

Определено в GHC.Internal.IsList

Связанные типы

type Item (ZipList a)
Подробности экземпляра

Определено в GHC.Internal.IsList

type Item (ZipList a) = a

Методы

fromList :: [Item (ZipList a)] -> ZipList a Источник

fromListN :: Int -> [Item (ZipList a)] -> ZipList a Источник

toList :: ZipList a -> [Item (ZipList a)] Источник

Read a => Read (ZipList a) Источник

С тех пор: base-4.7.0.0

Подробности экземпляра

Определено в GHC.Internal.Functor.ZipList

Методы

readsPrec :: Int -> ReadS (ZipList a) Источник

readList :: ReadS [ZipList a] Источник

readPrec :: ReadPrec (ZipList a) Источник

readListPrec :: ReadPrec [ZipList a] Источник

Show a => Show (ZipList a) Источник

С тех пор: base-4.7.0.0

Подробности экземпляра

Определено в GHC.Internal.Functor.ZipList

Методы

showsPrec :: Int -> ZipList a -> ShowS Источник

show :: ZipList a -> String Источник

showList :: [ZipList a] -> ShowS Источник

Eq a => Eq (ZipList a) Источник

С тех пор: base-4.7.0.0

Подробности экземпляра

Определено в GHC.Internal.Functor.ZipList

Методы

( == ) :: ZipList a -> ZipList a -> Bool Источник

( /= ) :: ZipList a -> ZipList a -> Bool Источник

Ord a => Ord (ZipList a) Источник

С момента: base-4.7.0.0

Подробности экземпляра

Определено в GHC.Internal.Functor.ZipList

Методы

compare :: ZipList a -> ZipList a -> Ordering Источник

( < ) :: ZipList a -> ZipList a -> Bool Источник

( <= ) :: ZipList a -> ZipList a -> Bool Источник

( > ) :: ZipList a -> ZipList a -> Bool Источник

( >= ) :: ZipList a -> ZipList a -> Bool Источник

max :: ZipList a -> ZipList a -> ZipList a Источник

min :: ZipList a -> ZipList a -> ZipList a Источник

type Rep1 ZipList Источник

С момента: base-4.7.0.0

Подробности экземпляра

Определено в GHC.Internal.Functor.ZipList

type Rep1 ZipList = D1 ('MetaData "ZipList" "GHC.Internal.Functor.ZipList" "ghc-internal" 'True) (C1 ('MetaCons "ZipList" 'PrefixI 'True) (S1 ('MetaSel ('Just "getZipList") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 [])))
type Rep (ZipList a) Источник

С момента: base-4.7.0.0

Подробности экземпляра

Определено в GHC.Internal.Functor.ZipList

type Rep (ZipList a) = D1 ('MetaData "ZipList" "GHC.Internal.Functor.ZipList" "ghc-internal" 'True) (C1 ('MetaCons "ZipList" 'PrefixI 'True) (S1 ('MetaSel ('Just "getZipList") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [a])))
type Item (ZipList a) Источник
Подробности экземпляра

Определено в GHC.Internal.IsList

type Item (ZipList a) = a

Вспомогательные функции

(<$>) :: Functor f => (a -> b) -> f a -> f b infixl 4 Источник

Псевдоним для fmap.

Название этого оператора намекает на $. Обратите внимание на сходство их типов:

 ($)  ::              (a -> b) ->   a ->   b
(<$>) :: Functor f => (a -> b) -> f a -> f b

В то время как $ это применение функции, <$> это применение функции, применённое к Functor.

Примеры
Развернуть

Преобразовать из Maybe Int в Maybe String с помощью show:

>>> show <$> Nothing
Nothing
>>> show <$> Just 3
Just "3"

Преобразовать из Either Int Int в Either Int String с помощью show:

>>> show <$> Left 17
Left 17
>>> show <$> Right 17
Right "17"

Удвоить каждый элемент списка:

>>> (*2) <$> [1,2,3]
[2,4,6]

Применить even ко второму элементу пары:

>>> even <$> (2,2)
(2,True)

(<$) :: Functor f => a -> f b -> f a infixl 4 Источник

Замените все расположения ввода одинаковым значением. По умолчанию определено как fmap . const, но это может быть переопределено более эффективной версией.

Примеры
Развернуть

Выполните вычисление с Maybe и замените результат константным значением, если он Just:

>>> 'a' <$ Just 2
Just 'a'
>>> 'a' <$ Nothing
Nothing

(<**>) :: Applicative f => f a -> f (a -> b) -> f b infixl 4 Источник

Вариант <*> с обратным порядком типов аргументов. Он отличается от flip (<*>) тем, что эффекты разрешаются в порядке представления аргументов.

Примеры
Развернуть
>>> (<**>) (print 1) (id <$ print 2)
1
2
>>> flip (<*>) (print 1) (id <$ print 2)
2
1
>>> ZipList [4, 5, 6] <**> ZipList [(+1), (*2), (/3)]
ZipList {getZipList = [5.0,10.0,2.0]}

liftA :: Applicative f => (a -> b) -> f a -> f b Источник

Возвышение функции до действий. Эквивалентно fmap из Functor, но реализовано только с помощью методов Applicative: liftA f a = pure f <*> a

Таким образом, эта функция может использоваться для реализации экземпляра Functor из экземпляра Applicative

Примеры
Развернуть

Использование экземпляра Applicative для списков:

>>> liftA (+1) [1, 2]
[2,3]

Или экземпляра Applicative для Maybe

>>> liftA (+1) (Just 3)
Just 4

liftA3 :: Applicative f => (a -> b -> c -> d) -> f a -> f b -> f c -> f d Источник

Возвышение тернарной функции до действий.

optional :: Alternative f => f a -> f (Maybe a) Источник

Одна или ни одна.

Полезна для моделирования любого вычисления, которое может завершиться ошибкой.

Примеры
Развернуть

Используя экземпляр Alternative из Control.Monad.Except, следующие функции:

>>> import Control.Monad.Except
>>> canFail = throwError "it failed" :: Except String Int
>>> final = return 42                :: Except String Int

Можно объединить, разрешив первой функции завершиться ошибкой:

>>> runExcept $ canFail *> final
Left "it failed"
>>> runExcept $ optional canFail *> final
Right 42

asum :: (Foldable t, Alternative f) => t (f a) -> f a Источник

Сумма набора действий с помощью (<|>), обобщая concat

asum аналогично msum, но обобщено до Alternative

Примеры
Развернуть

Базовое использование:

>>> asum [Just "Hello", Nothing, Just "World"]
Just "Hello"

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.12.1/docs/libraries/base-4.21.0.0-8e62/Control-Applicative.html

Spec-Zone.ru

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