Spec-Zone.ru › Haskell 8

Control.Applicative

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

Содержание

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

Описание

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

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

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

Для получения более подробной информации см. Прикладное программирование со эффектами, Конор МакБрайд и Росс Патерсон.

Прикладные функторы

class Functor f => Applicative f 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 Источник

Поднять значение.

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

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

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

Используя ApplicativeDo: 'fs <*> as' можно рассматривать как выражение do

do f <- fs
   a <- as
   pure (f a)

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

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

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

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

Используя ApplicativeDo: 'liftA2 f as bs' можно рассматривать как выражение do

do a <- as
   b <- bs
   pure (f a b)

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

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

'as *> bs' можно рассматривать как выражение do

do as
   bs

Это немного сложно для нашего ApplicativeDo расширения, которое предоставит ограничение Monad. Для ограничения Applicative мы напишем его в виде

do _ <- as
   b <- bs
   pure b

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

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

Используя ApplicativeDo: 'as <* bs' можно рассматривать как выражение do

do a <- as
   bs
   pure a
Экземпляры
Подробности об экземплярах
Applicative []

С версии: base-2.1

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

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

Методы

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

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

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

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

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

Applicative Maybe

С версии: base-2.1

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

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

Методы

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

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

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

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

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

Applicative IO

С версии: base-2.1

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

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

Методы

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

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

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

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

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

Applicative Par1

С версии: base-4.9.0.0

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

Определено в GHC.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 NonEmpty

С версии: base-4.9.0.0

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

Определено в GHC.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 NoIO

С версии: base-4.8.0.0

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

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

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

pure :: a -> NoIO a Source

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

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

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

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

Applicative ReadP

С версии: base-4.6.0.0

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

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

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

pure :: a -> ReadP a Source

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

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

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

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

Applicative ReadPrec

С версии: base-4.6.0.0

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

Определено в 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 Down

С версии: base-4.11.0.0

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

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

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

pure :: a -> Down a Source

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

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

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

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

Applicative Product

С версии: base-4.8.0.0

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

Определено в 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

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

Определено в 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 Dual

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

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

Определено в 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 Last

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

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

Определено в 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 First

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

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

Определено в 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 STM

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

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

Определено в GHC.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

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

Определено в 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 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

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

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

Методы

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 Option

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

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

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

Методы

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

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

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

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

(<*) :: Option a -> Option b -> Option 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 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 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 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 (Either e)

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

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

Определено в 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 (U1 :: Тип -> Тип)

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

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

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

Методы

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

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

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

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

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

Моноид a => Applicative ((,) a)

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

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

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

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

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

Методы

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

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

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

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

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

Applicative (ST s)

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

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

Определено в GHC.ST

Методы

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 (Proxy :: Тип -> Тип)

Since: base-4.7.0.0

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

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

Методы

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

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

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

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

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

Arrow a => Applicative (ArrowMonad a)

Since: base-4.6.0.0

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

Определено в 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 Исходный код

Monad m => Applicative (WrappedMonad m)

Since: 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 Исходный код

Applicative (ST s)

Since: base-2.1

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

Определено в 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 f => Applicative (Rec1 f)

Since: base-4.9.0.0

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

Определено в GHC.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 Исходный код

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

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

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

Определено в GHC.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 (Alt f)

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

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

Определено в 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 Исходный код

Applicative f => Applicative (Ap f)

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

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

Определено в 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 Исходный код

Monoid m => Applicative (Const m :: Тип -> Тип)

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

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

Определено в 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 Исходный код

Applicative m => Applicative (Kleisli m a)

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

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

Определено в 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 Исходный код

Arrow a => Applicative (WrappedArrow a b)

С момента: 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 ((->) r :: Тип -> Тип)

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

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

Определено в GHC.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 Исходный код

Моноид c => Applicative (K1 i c :: Тип -> Тип)

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

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

Определено в GHC.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 Источник

(Applicative f, Applicative g) => Applicative (f :*: g)

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

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

Определено в GHC.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 Источник

(Моноид a, Моноид b, Моноид c) => Applicative ((,,,) a b c)

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

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

Определено в GHC.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 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 (M1 i c f)

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

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

Определено в GHC.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 Исходный код

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

С версии: base-4.9.0.0

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

Определено в GHC.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 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 Исходный код

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

class Applicative f => Alternative f where Исходный код

Моноид на функциональных конструкторах.

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

  • some v = (:) <$> v <*> many v
  • many v = some v <|> pure []

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

empty, (<|>)

Методы

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

Идентификатор <|>

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

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

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

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

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

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

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

С версии: base-2.1

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

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

Методы

empty :: [a] Источник

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

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

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

Alternative Maybe

С версии: base-2.1

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

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

Методы

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

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

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

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

Alternative IO

С версии: base-4.9.0.0

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

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

Методы

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

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

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

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

Alternative ReadP

С версии: base-4.6.0.0

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

Определено в 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

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

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

Методы

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

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

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

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

Alternative STM

С версии: base-4.8.0.0

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

Определено в GHC.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

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

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

Методы

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

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

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

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

Alternative Option

Since: base-4.9.0.0

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

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

Методы

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

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

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

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

Alternative (U1 :: Тип -> Тип)

Since: base-4.9.0.0

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

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

Методы

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

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

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

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

Alternative (Proxy :: Тип -> Тип)

Since: base-4.9.0.0

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

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

Методы

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

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

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

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

ArrowPlus a => Alternative (ArrowMonad a)

Since: base-4.6.0.0

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

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

Методы

empty :: ArrowMonad a a0 Исходный код

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

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

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

MonadPlus m => Alternative (WrappedMonad m)

Since: 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] Исходный код

Alternative f => Alternative (Rec1 f)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

empty :: Rec1 f a Source

(<|>) :: Rec1 f a -> Rec1 f a -> Rec1 f a Source

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

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

Alternative f => Alternative (Alt f)

Since: base-4.8.0.0

Instance details

Defined in Data.Semigroup.Internal

Methods

empty :: Alt f a Source

(<|>) :: Alt f a -> Alt f a -> Alt f a Source

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

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

Alternative f => Alternative (Ap f)

Since: base-4.12.0.0

Instance details

Defined in Data.Monoid

Methods

empty :: Ap f a Source

(<|>) :: Ap f a -> Ap f a -> Ap f a Source

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

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

Alternative m => Alternative (Kleisli m a)

Since: base-4.14.0.0

Instance details

Defined in Control.Arrow

Methods

empty :: Kleisli m a a0 Source

(<|>) :: Kleisli m a a0 -> Kleisli m a a0 -> Kleisli m a a0 Source

some :: Kleisli m a a0 -> Kleisli m a [a0] Source

many :: Kleisli m a a0 -> Kleisli m a [a0] Source

(ArrowZero a, ArrowPlus a) => Alternative (WrappedArrow a b)

Since: base-2.1

Instance details

Defined in Control.Applicative

Methods

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

(Alternative f, Alternative g) => Alternative (f :*: g)

Since: base-4.9.0.0

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

Определено в GHC.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, 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 (M1 i c f)

С версии: base-4.9.0.0

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

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

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

empty :: M1 i c f a Исходный код

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

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

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

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

С версии: base-4.9.0.0

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

Определено в GHC.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)

С версии: base-4.9.0.0

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

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

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

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

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

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

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

Реализации

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

The Const functor.

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

Const

Краткое описание полей

  • getConst :: a
Реализации
Подробности экземпляров
Generic1 (Const a :: k -> Type)

Since: base-4.9.0.0

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

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

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

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

Методы

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

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

Show2 (Const :: Type -> Type -> Type)

Since: base-4.9.0.0

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

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

Методы

liftShowsPrec2 :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> (Int -> b -> ShowS) -> ([b] -> ShowS) -> Int -> Const a b -> ShowS Source

liftShowList2 :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> (Int -> b -> ShowS) -> ([b] -> ShowS) -> [Const a b] -> ShowS Source

Read2 (Const :: Type -> Type -> Type)

Since: base-4.9.0.0

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

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

Методы

liftReadsPrec2 :: (Int -> ReadS a) -> ReadS [a] -> (Int -> ReadS b) -> ReadS [b] -> Int -> ReadS (Const a b) Source

liftReadList2 :: (Int -> ReadS a) -> ReadS [a] -> (Int -> ReadS b) -> ReadS [b] -> ReadS [Const a b] Source

liftReadPrec2 :: ReadPrec a -> ReadPrec [a] -> ReadPrec b -> ReadPrec [b] -> ReadPrec (Const a b) Source

liftReadListPrec2 :: ReadPrec a -> ReadPrec [a] -> ReadPrec b -> ReadPrec [b] -> ReadPrec [Const a b] Source

Ord2 (Const :: Type -> Type -> Type)

Since: base-4.9.0.0

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

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

Методы

liftCompare2 :: (a -> b -> Ordering) -> (c -> d -> Ordering) -> Const a c -> Const b d -> Ordering Source

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

Since: base-4.9.0.0

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

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

Методы

liftEq2 :: (a -> b -> Bool) -> (c -> d -> Bool) -> Const a c -> Const b d -> Bool Source

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

Since: base-4.8.0.0

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

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

Методы

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

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

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

Bifoldable (Const :: Тип -> Тип -> Тип)

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

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

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

Методы

bifold :: Monoid m => Const m m -> m Исходный код

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

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

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

Bitraversable (Const :: Тип -> Тип -> Тип)

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

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

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

Методы

bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> Const a b -> f (Const c d) Исходный код

Functor (Const m :: Тип -> Тип)

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

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

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

Методы

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

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

Monoid m => Applicative (Const m :: Тип -> Тип)

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

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

Определено в 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 Исходный код

Foldable (Const m :: Тип -> Тип)

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

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

Определено в 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 :: Тип -> Тип)

С: base-4.7.0.0

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

Определено в 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) Исходный код

Show a => Show1 (Const a :: Тип -> Тип)

С: base-4.9.0.0

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

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

Методы

liftShowsPrec :: (Int -> a0 -> ShowS) -> ([a0] -> ShowS) -> Int -> Const a a0 -> ShowS Исходный код

liftShowList :: (Int -> a0 -> ShowS) -> ([a0] -> ShowS) -> [Const a a0] -> ShowS Исходный код

Read a => Read1 (Const a :: Тип -> Тип)

С: base-4.9.0.0

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

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

Методы

liftReadsPrec :: (Int -> ReadS a0) -> ReadS [a0] -> Int -> ReadS (Const a a0) Исходный код

liftReadList :: (Int -> ReadS a0) -> ReadS [a0] -> ReadS [Const a a0] Исходный код

liftReadPrec :: ReadPrec a0 -> ReadPrec [a0] -> ReadPrec (Const a a0) Исходный код

liftReadListPrec :: ReadPrec a0 -> ReadPrec [a0] -> ReadPrec [Const a a0] Исходный код

Ord a => Ord1 (Const a :: Type -> Type)

Since: base-4.9.0.0

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

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

Методы

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

Eq a => Eq1 (Const a :: Type -> Type)

Since: base-4.9.0.0

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

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

Методы

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

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

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

Методы

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

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

Bounded a => Bounded (Const a b)

Since: base-4.9.0.0

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

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

Методы

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

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

Enum a => Enum (Const a b)

Since: base-4.9.0.0

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

Определено в 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] Исходный код

Eq a => Eq (Const a b)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Const

Methods

(==) :: Const a b -> Const a b -> Bool Source

(/=) :: Const a b -> Const a b -> Bool Source

Floating a => Floating (Const a b)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Const

Methods

pi :: Const a b Source

exp :: Const a b -> Const a b Source

log :: Const a b -> Const a b Source

sqrt :: Const a b -> Const a b Source

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

logBase :: Const a b -> Const a b -> Const a b Source

sin :: Const a b -> Const a b Source

cos :: Const a b -> Const a b Source

tan :: Const a b -> Const a b Source

asin :: Const a b -> Const a b Source

acos :: Const a b -> Const a b Source

atan :: Const a b -> Const a b Source

sinh :: Const a b -> Const a b Source

cosh :: Const a b -> Const a b Source

tanh :: Const a b -> Const a b Source

asinh :: Const a b -> Const a b Source

acosh :: Const a b -> Const a b Source

atanh :: Const a b -> Const a b Source

log1p :: Const a b -> Const a b Source

expm1 :: Const a b -> Const a b Source

log1pexp :: Const a b -> Const a b Source

log1mexp :: Const a b -> Const a b Source

Fractional a => Fractional (Const a b)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Const

Methods

(/) :: Const a b -> Const a b -> Const a b Source

recip :: Const a b -> Const a b Source

fromRational :: Rational -> Const a b Source

Integral a => Integral (Const a b)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Const

Methods

quot :: Const a b -> Const a b -> Const a b Source

rem :: Const a b -> Const a b -> Const a b Source

div :: Const a b -> Const a b -> Const a b Source

mod :: Const a b -> Const a b -> Const a b Source

quotRem :: Const a b -> Const a b -> (Const a b, Const a b) Source

divMod :: Const a b -> Const a b -> (Const a b, Const a b) Source

toInteger :: Const a b -> Integer Source

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

Since: base-4.10.0.0

Instance details

Defined in Data.Data

Methods

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

Num a => Num (Const a b)

Since: base-4.9.0.0

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

Определено в 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 Исходный код

Ord a => Ord (Const a b)

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

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

Определено в 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 Исходный код

Read a => Read (Const a b)

Этот экземпляр был бы эквивалентен производным экземплярам Const newtype, если бы поле getConst было удалено

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

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

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

Методы

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

readList :: ReadS [Const a b] Исходный код

readPrec :: ReadPrec (Const a b) Исходный код

readListPrec :: ReadPrec [Const a b] Исходный код

Real a => Real (Const a b)

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

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

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

Методы

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

RealFloat a => RealFloat (Const a b)

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

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

Определено в 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 -> Целое число Исходный код

мантисса :: 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 Исходный код

RealFrac a => RealFrac (Const a b)

С: base-4.9.0.0

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

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

Методы

properFraction :: Целочисленное b0 => Const a b -> (b0, Const a b) Исходный код

truncate :: Целочисленное b0 => Const a b -> b0 Исходный код

round :: Целочисленное b0 => Const a b -> b0 Исходный код

ceiling :: Целочисленное b0 => Const a b -> b0 Исходный код

floor :: Целочисленное b0 => Const a b -> b0 Исходный код

Show a => Show (Const a b)

Этот экземпляр был бы эквивалентен производным экземплярам Const newtype, если бы getConst поле было удалено

С: base-4.8.0.0

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

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

Методы

showsPrec :: Целое число -> Const a b -> ShowS Исходный код

show :: Const a b -> Строка Исходный код

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

Ix a => Ix (Const a b)

С: base-4.9.0.0

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

Определено в 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 Исходный код

IsString a => IsString (Const a b)

С: base-4.9.0.0

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

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

Методы

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

Generic (Const a b)

С: base-4.9.0.0

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

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

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

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

Методы

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

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

Semigroup a => Semigroup (Const a b)

С: base-4.9.0.0

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

Определено в 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 Исходный код

Monoid a => Monoid (Const a b)

С: base-4.9.0.0

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

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

Методы

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

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

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

FiniteBits a => FiniteBits (Const a b)

С: base-4.9.0.0

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

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

Методы

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

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

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

Bits a => Bits (Const a b)

С: base-4.9.0.0

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

Определено в 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 Источник

Storable a => Storable (Const a b)

С: base-4.9.0.0

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

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

Методы

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

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

peekElemOff :: Ptr (Const a b) -> Int -> IO (Const a b) Исходный код

pokeElemOff :: Ptr (Const a b) -> Int -> Const a b -> IO () Исходный код

peekByteOff :: Ptr b0 -> Int -> IO (Const a b) Исходный код

pokeByteOff :: Ptr b0 -> Int -> Const a b -> IO () Исходный код

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

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

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

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

type Rep1 (Const a :: k -> Type) = D1 ('MetaData "Const" "Data.Functor.Const" "base" 'True) (C1 ('MetaCons "Const" 'PrefixI 'True) (S1 ('MetaSel ('Just "getConst") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))
type Rep (Const a b)
Подробности экземпляра

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

type Rep (Const a b) = D1 ('MetaData "Const" "Data.Functor.Const" "base" 'True) (C1 ('MetaCons "Const" 'PrefixI 'True) (S1 ('MetaSel ('Just "getConst") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))

newtype ОборачиваемыйМонад m a Исходный код

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

ОбернутьМонад

Поля

  • разобратьМонад :: m a
Примеры реализации
Подробности примеров реализации
Monad m => Monad (WrappedMonad m)

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

Подробности примера реализации

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

Методы

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

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

return :: a -> 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 => 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 Источник

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] Источник

Generic1 (WrappedMonad m :: Тип -> Тип)

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

Подробности примера реализации

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

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

type Rep1 (WrappedMonad m) :: k -> Тип Источник

Методы

from1 :: forall (a :: k). WrappedMonad m a -> Rep1 (WrappedMonad m) a Источник

to1 :: forall (a :: k). Rep1 (WrappedMonad m) a -> WrappedMonad m a Источник

(Typeable m, Typeable a, Data (m a)) => Data (WrappedMonad m a)

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

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

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

Методы

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> WrappedMonad m a -> c (WrappedMonad m a) Исходный код

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (WrappedMonad m a) Исходный код

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

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

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (WrappedMonad m a)) Исходный код

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (WrappedMonad m a)) Исходный код

gmapT :: (forall b. Data b => b -> b) -> WrappedMonad m a -> WrappedMonad m a Исходный код

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> WrappedMonad m a -> r Исходный код

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> WrappedMonad m a -> r Исходный код

gmapQ :: (forall d. Data d => d -> u) -> WrappedMonad m a -> [u] Исходный код

gmapQi :: Int -> (forall d. Data d => d -> u) -> WrappedMonad m a -> u Исходный код

gmapM :: Monad m0 => (forall d. Data d => d -> m0 d) -> WrappedMonad m a -> m0 (WrappedMonad m a) Исходный код

gmapMp :: MonadPlus m0 => (forall d. Data d => d -> m0 d) -> WrappedMonad m a -> m0 (WrappedMonad m a) Исходный код

gmapMo :: MonadPlus m0 => (forall d. Data d => d -> m0 d) -> WrappedMonad m a -> m0 (WrappedMonad m a) Исходный код

Generic (WrappedMonad m a)

С: base-4.7.0.0

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

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

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

type Rep (WrappedMonad m a) :: Type -> Type Исходный код

Методы

from :: WrappedMonad m a -> Rep (WrappedMonad m a) x Исходный код

to :: Rep (WrappedMonad m a) x -> WrappedMonad m a Исходный код

type Rep1 (WrappedMonad m :: Type -> Type)
Подробности экземпляра

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

type Rep1 (WrappedMonad m :: Type -> Type) = D1 ('MetaData "WrappedMonad" "Control.Applicative" "base" 'True) (C1 ('MetaCons "WrapMonad" 'PrefixI 'True) (S1 ('MetaSel ('Just "unwrapMonad") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 m)))
type Rep (WrappedMonad m a)
Подробности экземпляра

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

type Rep (WrappedMonad m a) = D1 ('MetaData "WrappedMonad" "Control.Applicative" "base" 'True) (C1 ('MetaCons "WrapMonad" 'PrefixI 'True) (S1 ('MetaSel ('Just "unwrapMonad") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (m a))))

newtype WrappedArrow a b c Source

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

WrapArrow

Поля

  • unwrapArrow :: a b c
Экземпляры
Подробности экземпляров
Generic1 (WrappedArrow a b :: Type -> Type)

С версии: base-4.7.0.0

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

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

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

type Rep1 (WrappedArrow a b) :: k -> Type Source

Методы

from1 :: forall (a0 :: k). WrappedArrow a b a0 -> Rep1 (WrappedArrow a b) a0 Source

to1 :: forall (a0 :: k). Rep1 (WrappedArrow a b) a0 -> WrappedArrow a b a0 Source

Arrow a => Functor (WrappedArrow a b)

С версии: 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

Arrow a => Applicative (WrappedArrow a b)

С версии: 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

(ArrowZero a, ArrowPlus a) => Alternative (WrappedArrow a b)

С версии: 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

(Typeable a, Typeable b, Typeable c, Data (a b c)) => Data (WrappedArrow a b c)

С версии: base-4.14.0.0

Сведения об экземпляре

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

Методы

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 Источник

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> WrappedArrow a b c -> r Источник

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> WrappedArrow a b c -> r Источник

gmapQ :: (forall d. Data d => d -> u) -> WrappedArrow a b c -> [u] Источник

gmapQi :: Int -> (forall d. Data d => d -> u) -> WrappedArrow a b c -> u Источник

gmapM :: Monad m => (forall d. Data d => d -> m d) -> WrappedArrow a b c -> m (WrappedArrow a b c) Источник

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> WrappedArrow a b c -> m (WrappedArrow a b c) Источник

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> WrappedArrow a b c -> m (WrappedArrow a b c) Источник

Generic (WrappedArrow a b c)

Since: base-4.7.0.0

Сведения об экземпляре

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

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

type Rep (WrappedArrow a b c) :: Type -> Type Источник

Методы

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)
Сведения об экземпляре

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

type Rep1 (WrappedArrow a b :: Type -> Type) = D1 ('MetaData "WrappedArrow" "Control.Applicative" "base" 'True) (C1 ('MetaCons "WrapArrow" 'PrefixI 'True) (S1 ('MetaSel ('Just "unwrapArrow") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 (a b))))
type Rep (WrappedArrow a b c)
Подробности экземпляра

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

type Rep (WrappedArrow a b c) = D1 ('MetaData "WrappedArrow" "Control.Applicative" "base" 'True) (C1 ('MetaCons "WrapArrow" 'PrefixI 'True) (S1 ('MetaSel ('Just "unwrapArrow") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (a b c))))

newtype ZipList a Source

Списки, но с функтором Applicative, основанным на сцеплении.

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

ZipList

Поля

  • getZipList :: [a]
Экземпляры
Подробности о экземплярах
Functor ZipList

С версии: base-2.1

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

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

Методы

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

(<$) :: a -> ZipList b -> 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

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

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

Методы

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 Источник

Foldable ZipList

С версии: base-4.9.0.0

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

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

Методы

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 -> Bool Источник

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

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

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

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

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

Методы

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) Исходный код

Alternative ZipList

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

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

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

Методы

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

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

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

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

IsList (ZipList a)

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

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

Определено в GHC.Exts

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

type Item (ZipList a) Исходный код

Методы

fromList :: [Item (ZipList a)] -> ZipList a Исходный код

fromListN :: Int -> [Item (ZipList a)] -> ZipList a Исходный код

toList :: ZipList a -> [Item (ZipList a)] Исходный код

Eq a => Eq (ZipList a)

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

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

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

Методы

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

(/=) :: ZipList a -> ZipList a -> Bool Исходный код

Data a => Data (ZipList a)

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

Instance details

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

Методы

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ZipList a -> c (ZipList a) Source

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (ZipList a) Source

toConstr :: ZipList a -> Constr Source

dataTypeOf :: ZipList a -> DataType Source

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (ZipList a)) Source

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (ZipList a)) Source

gmapT :: (forall b. Data b => b -> b) -> ZipList a -> ZipList a Source

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ZipList a -> r Source

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ZipList a -> r Source

gmapQ :: (forall d. Data d => d -> u) -> ZipList a -> [u] Source

gmapQi :: Int -> (forall d. Data d => d -> u) -> ZipList a -> u Source

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ZipList a -> m (ZipList a) Source

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ZipList a -> m (ZipList a) Source

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ZipList a -> m (ZipList a) Source

Ord a => Ord (ZipList a)

Since: base-4.7.0.0

Instance details

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

Методы

compare :: ZipList a -> ZipList a -> Ordering Source

(<) :: ZipList a -> ZipList a -> Bool Source

(<=) :: ZipList a -> ZipList a -> Bool Source

(>) :: ZipList a -> ZipList a -> Bool Source

(>=) :: ZipList a -> ZipList a -> Bool Source

max :: ZipList a -> ZipList a -> ZipList a Source

min :: ZipList a -> ZipList a -> ZipList a Source

Read a => Read (ZipList a)

Since: base-4.7.0.0

Instance details

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

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

readsPrec :: Int -> ReadS (ZipList a) Source

readList :: ReadS [ZipList a] Source

readPrec :: ReadPrec (ZipList a) Source

readListPrec :: ReadPrec [ZipList a] Source

Show a => Show (ZipList a)

Since: base-4.7.0.0

Instance details

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

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

showsPrec :: Int -> ZipList a -> ShowS Source

show :: ZipList a -> String Source

showList :: [ZipList a] -> ShowS Source

Generic (ZipList a)

Since: base-4.7.0.0

Instance details

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

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

type Rep (ZipList a) :: Type -> Type Source

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

from :: ZipList a -> Rep (ZipList a) x Source

to :: Rep (ZipList a) x -> ZipList a Source

Generic1 ZipList

Since: base-4.7.0.0

Instance details

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

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

type Rep1 ZipList :: k -> Type Source

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

from1 :: forall (a :: k). ZipList a -> Rep1 ZipList a Source

to1 :: forall (a :: k). Rep1 ZipList a -> ZipList a Source

type Rep (ZipList a)
Instance details

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

type Rep (ZipList a) = D1 ('MetaData "ZipList" "Control.Applicative" "base" 'True) (C1 ('MetaCons "ZipList" 'PrefixI 'True) (S1 ('MetaSel ('Just "getZipList") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [a])))
type Item (ZipList a)
Instance details

Определено в GHC.Exts

type Item (ZipList a) = a
type Rep1 ZipList
Instance details

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

type Rep1 ZipList = D1 ('MetaData "ZipList" "Control.Applicative" "base" 'True) (C1 ('MetaCons "ZipList" 'PrefixI 'True) (S1 ('MetaSel ('Just "getZipList") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 [])))

Вспомогательные функции

(<$>) :: Functor f => (a -> b) -> f a -> f b infixl 4 Source

Синоним infix для 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, но может быть переопределено более эффективной версией.

Используя ApplicativeDo: 'a <$ bs' можно интерпретировать как выражение do

do bs
   pure a

с выведенным ограничением Functor.

(<**>) :: Applicative f => f a -> f (a -> b) -> f b infixl 4 Источник

Вариант <*> с обратным порядком аргументов.

Используя ApplicativeDo: 'as <**> fs' можно интерпретировать как выражение do

do a <- as
   f <- fs
   pure (f a)

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

Поднятие функции к действиям. Эта функция может быть использована как значение для fmap в экземпляре Functor.

| Используя ApplicativeDo: 'liftA f as' можно интерпретировать как выражение do

do a <- as
   pure (f a)

с выведенным ограничением Functor слабее, чем Applicative.

liftA3 :: Applicative f => (a -> b -> c -> d) -> f a -> f b -> f c -> f d Источник

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

Используя ApplicativeDo: 'liftA3 f as bs cs' можно интерпретировать как выражение do

do a <- as
   b <- bs
   c <- cs
   pure (f a b c)

optional :: Alternative f => f a -> f (МожетБыть a) Источник

Один или ни одного.

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/8.10.2/docs/html/libraries/base-4.14.1.0/Control-Applicative.html

Spec-Zone.ru

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