Spec-Zone.ru › Haskell 8

GHC.Базовая

Авторские права (c) Университет Глазго 1992-2002
Лицензия см. libraries/base/LICENSE
Поддержка cvs-ghc@haskell.org
Стабильность внутренняя
Переносимость непереносимая (расширения GHC)
Безопасный Haskell Небезопасный
Язык Haskell2010

Описание

Основные типы данных и классы.

augment :: forall a. (forall b. (a -> b -> b) -> b -> b) -> [a] -> [a] Источник

Производитель списков, который можно объединить с foldr. Эта функция просто

   augment g xs = g (:) xs

но упроститель GHC преобразует выражение вида foldr k z (augment g xs), которое может возникнуть после встраивания, в g k (foldr k z xs), что избегает создания промежуточного списка.

(++) :: [a] -> [a] -> [a] infixr 5 Источник

Присоединяет два списка, т.е.

[x1, ..., xm] ++ [y1, ..., yn] == [x1, ..., xm, y1, ..., yn]
[x1, ..., xm] ++ [y1, ...] == [x1, ..., xm, y1, ...]

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

build :: forall a. (forall b. (a -> b -> b) -> b -> b) -> [a] Источник

Производитель списков, который можно объединить с foldr. Эта функция просто

   build g = g (:) []

но упроститель GHC преобразует выражение вида foldr k z (build g), которое может возникнуть после встраивания, в g k z, что избегает создания промежуточного списка.

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

foldr, применённая к бинарному оператору, начальному значению (обычно право-нейтральному элементу оператора) и списку, сворачивает список с использованием бинарного оператора справа налево:

foldr f z [x1, x2, ..., xn] == x1 `f` (x2 `f` ... (xn `f` z)...)

eqString :: String -> String -> Bool Источник

Этот String предикат равенства используется при разборе соответствий шаблонам со строками.

bindIO :: IO a -> (a -> IO b) -> IO b Источник

returnIO :: a -> IO a Источник

otherwise :: Bool Источник

otherwise определяется как значение True. Это помогает сделать условия более читаемыми. Например:

 f x | x < 0     = ...
     | otherwise = ...

assert :: Bool -> a -> a Источник

Если первое аргумент оценивается как True, то результатом является второй аргумент. В противном случае генерируется исключение AssertionFailed, содержащее String, включая имя файла и номер строки вызова assert.

Утверждения обычно можно включить или выключить с помощью флага компилятора (для GHC утверждения обычно включены, если оптимизация не включена с -O или флаг -fignore-asserts указан). При выключенных утверждениях первый аргумент assert игнорируется, и в качестве результата возвращается второй аргумент.

thenIO :: IO a -> IO b -> IO b Источник

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

breakpointCond :: Bool -> a -> a Источник

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

\(\mathcal{O}(n)\). map f xs — это список, полученный путём применения f к каждому элементу xs, т.е.

map f [x1, x2, ..., xn] == [f x1, f x2, ..., f xn]
map f [x1, x2, ...] == [f x1, f x2, ...]
>>> map (+1) [1, 2, 3]

($) :: forall r a (b :: TYPE r). (a -> b) -> a -> b infixr 0 Источник

Оператор применения. Этот оператор избыточен, поскольку обычное применение (f x) означает то же, что и (f $ x). Однако $ имеет низкий приоритет связывания и правоассоциативность, поэтому иногда позволяет опустить скобки; например:

f $ g $ h x  =  f (g (h x))

Он также полезен в высших порядка ситуациях, таких как map ($ 0) xs, или zipWith ($) fs xs.

Обратите внимание, что ($) является полиморфным по лености в своём типе результата, так что foo $ True, где foo :: Bool -> Int# хорошо типизируется.

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

Функция join является стандартным оператором объединения монады. Он используется для удаления одного уровня монадной структуры, проектируя связанный аргумент на внешний уровень.

'join bss' можно понять как do выражение

do bs <- bss
   bs
Примеры
Развернуть

Распространённое использование join — это выполнение вычисления IO, возвращаемого из STM транзакции, поскольку STM транзакции не могут выполнять IO непосредственно. Вспомните, что

atomically :: STM a -> IO a

используется для выполнения STM транзакций атомарно. Таким образом, специализируя типы atomically и join на

atomically :: STM (IO b) -> IO (IO b)
join       :: IO (IO b)  -> IO b

мы можем их комбинировать как

join . atomically :: STM (IO b) -> IO b

для выполнения STM транзакции и IO действия, которое она возвращает.

class Applicative m => Monad m where Источник

Класс Monad определяет основные операции над монадой, концепцией из области математики, известной как теория категорий. Однако с точки зрения программиста на Haskell лучше представлять монаду как абстрактный тип данных действий. do выражения Haskell предоставляют удобный синтаксис для записи монадических выражений.

Примеры Monad должны удовлетворять следующим:

Левая идентичность
return a >>= k = k a
Правая идентичность
m >>= return = m
Ассоциативность
m >>= (\x -> k x >>= h) = (m >>= k) >>= h

Кроме того, операции Monad и Applicative должны быть связаны следующим образом:

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

Вышеуказанные законы подразумевают:

  • fmap f xs  =  xs >>= return . f
  • (>>) = (*>)

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

Примеры Monad для списков, Maybe и IO определённые в Prelude, удовлетворяют этим законам.

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

(>>=)

Методы

(>>=) :: forall a b. m a -> (a -> m b) -> m b infixl 1 Источник

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

'as >>= bs' можно понять как do выражение

do a <- as
   bs a

(>>) :: forall a b. m a -> m b -> m b infixl 1 Источник

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

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

do as
   bs

return :: a -> m a Источник

Вставляет значение в монадный тип.

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

С версии: base-2.1

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

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

Методы

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

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

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

Monad Maybe

С версии: base-2.1

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

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

Методы

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

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

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

Monad IO

С версии: base-2.1

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

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

Методы

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

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

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

Monad Par1

С версии: base-4.9.0.0

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

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

Методы

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

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

return :: a -> Par1 a Исходный код

Monad NonEmpty

С версии: base-4.9.0.0

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

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

Методы

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

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

return :: a -> NonEmpty a Исходный код

Monad NoIO

С версии: base-4.4.0.0

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

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

Методы

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

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

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

Monad ReadP

С версии: base-2.1

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

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

Методы

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

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

return :: a -> ReadP a Исходный код

Monad ReadPrec

С версии: base-2.1

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

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

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

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

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

return :: a -> ReadPrec a Source

Monad Down

Since: base-4.11.0.0

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

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

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

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

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

return :: a -> Down a Source

Monad Product

Since: base-4.8.0.0

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

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

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

(>>=) :: Product a -> (a -> Product b) -> Product b Source

(>>) :: Product a -> Product b -> Product b Source

return :: a -> Product a Source

Monad Sum

Since: base-4.8.0.0

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

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

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

(>>=) :: Sum a -> (a -> Sum b) -> Sum b Source

(>>) :: Sum a -> Sum b -> Sum b Source

return :: a -> Sum a Source

Monad Dual

Since: base-4.8.0.0

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

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

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

(>>=) :: Dual a -> (a -> Dual b) -> Dual b Source

(>>) :: Dual a -> Dual b -> Dual b Source

return :: a -> Dual a Source

Monad Last

Since: base-4.8.0.0

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

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

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

(>>=) :: Last a -> (a -> Last b) -> Last b Source

(>>) :: Last a -> Last b -> Last b Source

return :: a -> Last a Source

Monad First

Since: base-4.8.0.0

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

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

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

(>>=) :: First a -> (a -> First b) -> First b Source

(>>) :: First a -> First b -> First b Source

return :: a -> First a Source

Monad STM

Since: base-4.3.0.0

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

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

Методы

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

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

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

Monad Identity

С версии: base-4.8.0.0

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

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

Методы

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

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

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

Monad Option

С версии: base-4.9.0.0

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

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

Методы

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

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

return :: a -> Option a Источник

Monad Last

С версии: base-4.9.0.0

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

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

Методы

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

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

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

Monad First

С версии: base-4.9.0.0

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

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

Методы

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

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

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

Monad Max

С версии: base-4.9.0.0

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

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

Методы

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

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

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

Monad Min

С версии: base-4.9.0.0

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

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

Методы

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

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

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

Monad Complex

С версии: base-4.9.0.0

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

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

Методы

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

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

return :: a -> Complex a Исходный код

Monad (Either e)

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

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

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

Методы

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

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

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

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

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

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

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

Методы

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

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

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

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

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

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

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

Методы

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

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

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

Monad (ST s)

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

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

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

Методы

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

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

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

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

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

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

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

Методы

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

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

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

ArrowApply a => Monad (ArrowMonad a)

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

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

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

Методы

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

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

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

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 (ST s)

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

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

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

Методы

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

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

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

Monad f => Monad (Rec1 f)

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

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

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

Методы

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

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

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

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

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

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

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

Методы

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

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

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

Monad f => Monad (Alt f)

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

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

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

Методы

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

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

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

Monad f => Monad (Ap f)

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

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

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

Методы

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

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

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

Monad m => Monad (Kleisli m a)

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

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

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

Методы

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

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

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

Monad ((->) r :: Type -> Type)

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

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

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

Методы

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

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

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

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

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

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

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

Методы

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

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

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

(Monoid a, Monoid b, Monoid c) => Monad ((,,,) a b c)

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

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

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

Методы

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

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

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

(Monad f, Monad g) => Monad (Product f g)

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

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

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

Методы

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

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

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

Monad f => Monad (M1 i c f)

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

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

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

Методы

(>>=) :: M1 i c f a -> (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 b Исходный код

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

class Functor f where Исходный код

Тип f является Functor, если он предоставляет функцию fmap, которая, учитывая любые типы a и b, позволяет применять любую функцию из (a -> b) для преобразования f a в f b, сохраняя структуру f. Кроме того, f должен соответствовать следующим условиям:

Тождество
fmap id == id
Композиция
fmap (f . g) == fmap f . fmap g

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

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

fmap

Методы

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

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

do a <- as
   pure (f a)

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

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

Заменяет все места в вводе на одно и то же значение. По умолчанию определение равно fmap . const, но это можно переопределить более эффективной версией.

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

do bs
   pure a

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

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

С версии: base-2.1

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

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

Методы

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

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

Functor Maybe

С версии: base-2.1

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

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

Методы

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

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

Functor IO

С версии: base-2.1

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

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

Методы

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

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

Functor Par1

С версии: base-4.9.0.0

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

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

Методы

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

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

Functor NonEmpty

С версии: base-4.9.0.0

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

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

Методы

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

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

Functor NoIO

С версии: base-4.8.0.0

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

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

Методы

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

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

Functor ReadP

С версии: base-2.1

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

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

Методы

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

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

Functor ReadPrec

С версии: base-2.1

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

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

Методы

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

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

Functor Down

С версии: base-4.11.0.0

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

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

Методы

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

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

Functor Product

С версии: base-4.8.0.0

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

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

Методы

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

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

Functor Сумма

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

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

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

Методы

fmap :: (a -> b) -> Сумма a -> Сумма b Исходный код

(<$) :: a -> Сумма b -> Сумма a Исходный код

Functor Дуаль

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

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

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

Методы

fmap :: (a -> b) -> Дуаль a -> Дуаль b Исходный код

(<$) :: a -> Дуаль b -> Дуаль a Исходный код

Functor Последний

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

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

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

Методы

fmap :: (a -> b) -> Последний a -> Последний b Исходный код

(<$) :: a -> Последний b -> Последний a Исходный код

Functor Первый

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

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

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

Методы

fmap :: (a -> b) -> Первый a -> Первый b Исходный код

(<$) :: a -> Первый b -> Первый a Исходный код

Functor STM

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

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

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

Методы

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

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

Functor Обработчик

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

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

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

Методы

fmap :: (a -> b) -> Обработчик a -> Обработчик b Исходный код

(<$) :: a -> Обработчик b -> Обработчик a Исходный код

Functor Тождество

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

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

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

Методы

fmap :: (a -> b) -> Тождество a -> Тождество b Исходный код

(<$) :: a -> Тождество b -> Тождество a Исходный код

Functor ZipList

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

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

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

Методы

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

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

Functor ArgDescr

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

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

Определено в System.Console.GetOpt

Методы

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

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

Functor OptDescr

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

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

Определено в System.Console.GetOpt

Методы

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

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

Functor ArgOrder

С версии: base-4.6.0.0

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

Определено в System.Console.GetOpt

Методы

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

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

Functor Option

С версии: base-4.9.0.0

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

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

Методы

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

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

Functor Last

С версии: base-4.9.0.0

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

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

Методы

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

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

Functor First

С версии: base-4.9.0.0

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

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

Методы

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

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

Functor Max

С версии: base-4.9.0.0

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

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

Методы

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

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

Functor Min

С версии: base-4.9.0.0

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

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

Методы

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

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

Functor Complex

С версии: base-4.9.0.0

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

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

Методы

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

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

Functor (Either a)

С версии: base-3.0

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

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

Методы

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

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

Functor (V1 :: Type -> Type)

С версии: base-4.9.0.0

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

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

Методы

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

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

Functor (U1 :: Type -> Type)

С версии: base-4.9.0.0

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

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

Методы

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

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

Functor ((,) a)

С версии: base-2.1

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

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

Методы

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

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

Functor (ST s)

С версии: base-2.1

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

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

Методы

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

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

Functor (Array i)

С версии: base-2.1

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

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

Методы

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

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

Functor (Proxy :: Type -> Type)

С версии: base-4.7.0.0

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

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

Методы

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

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

Arrow a => Functor (ArrowMonad a)

С версии: base-4.6.0.0

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

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

Методы

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

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

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

Functor (ST s)

С версии: base-2.1

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

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

Методы

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

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

Functor (Arg a)

С версии: base-4.9.0.0

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

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

Методы

fmap :: (a0 -> b) -> Arg a a0 -> Arg a b Source

(<$) :: a0 -> Arg a b -> Arg a a0 Source

Functor f => Functor (Rec1 f)

Since: base-4.9.0.0

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

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

Методы

fmap :: (a -> b) -> Rec1 f a -> Rec1 f b Source

(<$) :: a -> Rec1 f b -> Rec1 f a Source

Functor (URec Char :: Type -> Type)

Since: base-4.9.0.0

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

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

Методы

fmap :: (a -> b) -> URec Char a -> URec Char b Source

(<$) :: a -> URec Char b -> URec Char a Source

Functor (URec Double :: Type -> Type)

Since: base-4.9.0.0

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

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

Методы

fmap :: (a -> b) -> URec Double a -> URec Double b Source

(<$) :: a -> URec Double b -> URec Double a Source

Functor (URec Float :: Type -> Type)

Since: base-4.9.0.0

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

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

Методы

fmap :: (a -> b) -> URec Float a -> URec Float b Source

(<$) :: a -> URec Float b -> URec Float a Source

Functor (URec Int :: Type -> Type)

Since: base-4.9.0.0

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

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

Методы

fmap :: (a -> b) -> URec Int a -> URec Int b Source

(<$) :: a -> URec Int b -> URec Int a Source

Functor (URec Word :: Type -> Type)

Since: base-4.9.0.0

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

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

Методы

fmap :: (a -> b) -> URec Word a -> URec Word b Source

(<$) :: a -> URec Word b -> URec Word a Source

Functor (URec (Ptr ()) :: Type -> Type)

Since: base-4.9.0.0

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

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

Методы

fmap :: (a -> b) -> URec (Ptr ()) a -> URec (Ptr ()) b Source

(<$) :: a -> URec (Ptr ()) b -> URec (Ptr ()) a Source

Functor ((,,) a b)

Since: base-4.14.0.0

Instance details

Defined in GHC.Base

Методы

fmap :: (a0 -> b0) -> (a, b, a0) -> (a, b, b0) Source

(<$) :: a0 -> (a, b, b0) -> (a, b, a0) Source

Functor f => Functor (Alt f)

Since: base-4.8.0.0

Instance details

Defined in Data.Semigroup.Internal

Методы

fmap :: (a -> b) -> Alt f a -> Alt f b Source

(<$) :: a -> Alt f b -> Alt f a Source

Functor f => Functor (Ap f)

Since: base-4.12.0.0

Instance details

Defined in Data.Monoid

Методы

fmap :: (a -> b) -> Ap f a -> Ap f b Source

(<$) :: a -> Ap f b -> Ap f a Source

Functor (Const m :: Type -> Type)

Since: base-2.1

Instance details

Defined in Data.Functor.Const

Методы

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

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

Functor m => Functor (Kleisli m a)

Since: base-4.14.0.0

Instance details

Defined in Control.Arrow

Методы

fmap :: (a0 -> b) -> Kleisli m a a0 -> Kleisli m a b Source

(<$) :: a0 -> Kleisli m a b -> Kleisli m a a0 Source

Arrow a => Functor (WrappedArrow a b)

Since: base-2.1

Instance details

Defined in Control.Applicative

Методы

fmap :: (a0 -> b0) -> WrappedArrow a b a0 -> WrappedArrow a b b0 Source

(<$) :: a0 -> WrappedArrow a b b0 -> WrappedArrow a b a0 Source

Functor ((->) r :: Type -> Type)

Since: base-2.1

Instance details

Defined in GHC.Base

Методы

fmap :: (a -> b) -> (r -> a) -> r -> b Source

(<$) :: a -> (r -> b) -> r -> a Source

Functor (K1 i c :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Методы

fmap :: (a -> b) -> K1 i c a -> K1 i c b Source

(<$) :: a -> K1 i c b -> K1 i c a Source

(Functor f, Functor g) => Functor (f :+: g)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Методы

fmap :: (a -> b) -> (f :+: g) a -> (f :+: g) b Source

(<$) :: a -> (f :+: g) b -> (f :+: g) a Source

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

Since: base-4.9.0.0

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

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

Методы

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

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

Functor ((,,,) a b c)

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

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

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

Методы

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

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

(Functor f, Functor g) => Functor (Sum f g)

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

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

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

Методы

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

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

(Functor f, Functor g) => Functor (Product f g)

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

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

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

Методы

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

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

Functor f => Functor (M1 i c f)

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

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

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

Методы

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

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

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

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

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

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

Методы

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

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

(Functor f, Functor g) => Functor (Compose f g)

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

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

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

Методы

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

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

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 Source

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

(<*>) :: f (a -> b) -> f a -> f b infixl 4 Source

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

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

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

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

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

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

Некоторые функторы поддерживают реализацию 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 Source

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

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

do as
   bs

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

do _ <- as
   b <- bs
   pure b

(<*) :: f a -> f b -> f a infixl 4 Source

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

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

do a <- as
   bs
   pure a
Вхождения
Подробности о вхождениях
Applicative []

Since: base-2.1

Подробности о вхождении

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

Методы

pure :: a -> [a] Source

(<*>) :: [a -> b] -> [a] -> [b] Source

liftA2 :: (a -> b -> c) -> [a] -> [b] -> [c] Source

(*>) :: [a] -> [b] -> [b] Source

(<*) :: [a] -> [b] -> [a] Source

Applicative Maybe

Since: base-2.1

Подробности о вхождении

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

Since: base-2.1

Подробности о вхождении

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

Since: base-4.9.0.0

Подробности о вхождении

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

Методы

pure :: a -> Par1 a Source

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

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

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

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

Applicative NonEmpty

Since: base-4.9.0.0

Подробности о вхождении

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

Методы

pure :: a -> NonEmpty a Source

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

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

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

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

Applicative NoIO

Since: base-4.8.0.0

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

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

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

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

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

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

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

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

Методы

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

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

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

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

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

Applicative Down

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

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

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

Since: 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

Since: 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"]}

Since: 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

Since: 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

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

С момента: 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)

С момента: 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)

С момента: 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)

С момента: 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)

С момента: 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 :: Type -> Type)

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

Since: 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)

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

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

Since: 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)

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

(Monoid a, Monoid b, Monoid 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 Semigroup a where Исходный код

Класс полугрупп (типов с ассоциативной бинарной операцией).

Экземпляры должны удовлетворять следующим условиям:

Ассоциативность
x <> (y <> z) = (x <> y) <> z

С версии: base-4.9.0.0

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

(<>)

Методы

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

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

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

sconcat :: NonEmpty a -> a Исходный код

Свести непустой список с помощью <>

По умолчанию достаточно, но может быть переопределено для повышения эффективности.

>>> import Data.List.NonEmpty
>>> sconcat $ "Hello" :| [" ", "Haskell", "!"]
"Hello Haskell!"

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

Повторить значение n раз.

Поскольку это работает с Semigroup, разрешается ошибка при запросе 0 или меньше повторений, и стандартное определение так и поступит.

Делая это членом класса, идемпотентные полугруппы и моноиды могут улучшить это до выполнения за \(\mathcal{O}(1)\), выбирая stimes = stimesIdempotent или stimes = stimesIdempotentMonoid соответственно.

>>> stimes 4 [1]
[1,1,1,1]
Примеры
Подробности примеров
Semigroup Ordering

С версии: base-4.9.0.0

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

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

Методы

(<>) :: Ordering -> Ordering -> Ordering Исходный код

sconcat :: NonEmpty Ordering -> Ordering Исходный код

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

Semigroup ()

С версии: base-4.9.0.0

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

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

Методы

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

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

stimes :: Integral b => b -> () -> () Исходный код

Semigroup Any

С версии: base-4.9.0.0

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

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

Методы

(<>) :: Any -> Any -> Any Исходный код

sconcat :: NonEmpty Any -> Any Исходный код

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

Semigroup All

С версии: base-4.9.0.0

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

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

Методы

(<>) :: All -> All -> All Исходный код

sconcat :: NonEmpty All -> All Исходный код

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

Semigroup Lifetime

С версии: base-4.10.0.0

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

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

Методы

(<>) :: Lifetime -> Lifetime -> Lifetime Исходный код

sconcat :: NonEmpty Lifetime -> Lifetime Исходный код

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

Semigroup Event

С версии: base-4.10.0.0

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

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

Методы

(<>) :: Event -> Event -> Event Исходный код

sconcat :: NonEmpty Event -> Event Исходный код

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

Semigroup Void

С версии: base-4.9.0.0

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

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

Методы

(<>) :: Void -> Void -> Void Исходный код

sconcat :: NonEmpty Void -> Void Исходный код

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

Semigroup [a]

С версии: base-4.9.0.0

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

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

Методы

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

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

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

Semigroup a => Semigroup (Maybe a)

С версии: base-4.9.0.0

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

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

Методы

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

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

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

Semigroup a => Semigroup (IO a)

С версии: base-4.10.0.0

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

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

Методы

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

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

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

Semigroup p => Semigroup (Par1 p)

С версии: base-4.12.0.0

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

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

Методы

(<>) :: Par1 p -> Par1 p -> Par1 p Исходный код

sconcat :: NonEmpty (Par1 p) -> Par1 p Исходный код

stimes :: Integral b => b -> Par1 p -> Par1 p Исходный код

Semigroup (NonEmpty a)

С версии: base-4.9.0.0

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

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

Методы

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

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

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

Semigroup a => Semigroup (Down a)

С версии: base-4.11.0.0

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

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

Методы

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

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

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

Num a => Semigroup (Product a)

С версии: base-4.9.0.0

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

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

Методы

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

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

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

Num a => Semigroup (Sum a)

С версии: base-4.9.0.0

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

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

Методы

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

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

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

Semigroup (Endo a)

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

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

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

Методы

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

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

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

Semigroup a => Semigroup (Dual a)

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

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

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

Методы

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

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

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

Semigroup (Last a)

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

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

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

Методы

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

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

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

Semigroup (First a)

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

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

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

Методы

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

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

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

Semigroup a => Semigroup (Identity a)

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

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

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

Методы

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

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

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

Semigroup a => Semigroup (Option a)

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

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

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

Методы

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

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

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

Monoid m => Semigroup (WrappedMonoid m)

С версии: base-4.9.0.0

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

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

Методы

(<>) :: WrappedMonoid m -> WrappedMonoid m -> WrappedMonoid m Исходный код

sconcat :: NonEmpty (WrappedMonoid m) -> WrappedMonoid m Исходный код

stimes :: Integral b => b -> WrappedMonoid m -> WrappedMonoid m Исходный код

Semigroup (Last a)

С версии: base-4.9.0.0

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

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

Методы

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

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

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

Semigroup (First a)

С версии: base-4.9.0.0

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

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

Методы

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

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

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

Ord a => Semigroup (Max a)

С версии: base-4.9.0.0

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

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

Методы

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

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

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

Ord a => Semigroup (Min a)

С версии: base-4.9.0.0

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

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

Методы

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

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

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

Semigroup (Equivalence a)
Подробности экземпляра

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

Методы

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

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

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

Semigroup (Comparison a)
Подробности экземпляра

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

Методы

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

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

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

Semigroup (Predicate a)
Подробности экземпляра

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

Методы

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

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

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

Semigroup b => Semigroup (a -> b)

Since: base-4.9.0.0

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

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

Методы

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

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

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

Semigroup (Either a b)

Since: base-4.9.0.0

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

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

Методы

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

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

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

Semigroup (V1 p)

Since: base-4.12.0.0

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

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

Методы

(<>) :: V1 p -> V1 p -> V1 p Исходный код

sconcat :: NonEmpty (V1 p) -> V1 p Исходный код

stimes :: Integral b => b -> V1 p -> V1 p Исходный код

Semigroup (U1 p)

Since: base-4.12.0.0

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

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

Методы

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

sconcat :: NonEmpty (U1 p) -> U1 p Исходный код

stimes :: Integral b => b -> U1 p -> U1 p Исходный код

(Semigroup a, Semigroup b) => Semigroup (a, b)

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

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

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

Методы

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

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

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

Semigroup a => Semigroup (ST s a)

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

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

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

Методы

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

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

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

Semigroup (Proxy s)

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

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

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

Методы

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

sconcat :: NonEmpty (Proxy s) -> Proxy s Исходный код

stimes :: Integral b => b -> Proxy s -> Proxy s Исходный код

Semigroup a => Semigroup (Op a b)
Подробности экземпляра

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

Методы

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

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

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

Semigroup (f p) => Semigroup (Rec1 f p)

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

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

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

Методы

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

sconcat :: NonEmpty (Rec1 f p) -> Rec1 f p Исходный код

stimes :: Integral b => b -> Rec1 f p -> Rec1 f p Исходный код

(Semigroup a, Semigroup b, Semigroup c) => Semigroup (a, b, c)

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

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

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

Методы

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

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

stimes :: Integral b0 => b0 -> (a, b, c) -> (a, b, c) Исходный код

Alternative f => Semigroup (Alt f a)

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

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

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

Методы

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

sconcat :: Непустой (Alt f a) -> Alt f a Исходный код

stimes :: Целочисленный b => b -> Alt f a -> Alt f a Исходный код

(Применимый f, Полугруппа a) => Полугруппа (Ap f a)

С версии: base-4.12.0.0

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

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

Методы

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

sconcat :: Непустой (Ap f a) -> Ap f a Исходный код

stimes :: Целочисленный b => b -> Ap f a -> Ap f a Исходный код

Полугруппа a => Полугруппа (Const a b)

С версии: base-4.9.0.0

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

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

Методы

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

sconcat :: Непустой (Const a b) -> Const a b Исходный код

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

Полугруппа c => Полугруппа (K1 i c p)

С версии: base-4.12.0.0

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

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

Методы

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

sconcat :: Непустой (K1 i c p) -> K1 i c p Исходный код

stimes :: Целочисленный b => b -> K1 i c p -> K1 i c p Исходный код

(Полугруппа (f p), Полугруппа (g p)) => Полугруппа ((f :*: g) p)

С версии: base-4.12.0.0

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

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

Методы

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

sconcat :: Непустой ((f :*: g) p) -> (f :*: g) p Исходный код

stimes :: Целочисленный b => b -> (f :*: g) p -> (f :*: g) p Исходный код

(Полугруппа a, Полугруппа b, Полугруппа c, Полугруппа d) => Полугруппа (a, b, c, d)

С версии: base-4.9.0.0

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

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

Методы

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

sconcat :: Непустой (a, b, c, d) -> (a, b, c, d) Исходный код

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

Полугруппа (f p) => Полугруппа (M1 i c f p)

С версии: base-4.12.0.0

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

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

Методы

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

sconcat :: NonEmpty (M1 i c f p) -> M1 i c f p Исходный код

stimes :: Integral b => b -> M1 i c f p -> M1 i c f p Исходный код

Semigroup (f (g p)) => Semigroup ((f :.: g) p)

С версии: base-4.12.0.0

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

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

Методы

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

sconcat :: NonEmpty ((f :.: g) p) -> (f :.: g) p Исходный код

stimes :: Integral b => b -> (f :.: g) p -> (f :.: g) p Исходный код

(Semigroup a, Semigroup b, Semigroup c, Semigroup d, Semigroup e) => Semigroup (a, b, c, d, e)

С версии: base-4.9.0.0

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

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

Методы

(<>) :: (a, b, c, d, e) -> (a, b, c, d, e) -> (a, b, c, d, e) Исходный код

sconcat :: NonEmpty (a, b, c, d, e) -> (a, b, c, d, e) Исходный код

stimes :: Integral b0 => b0 -> (a, b, c, d, e) -> (a, b, c, d, e) Исходный код

class Semigroup a => Monoid a where Исходный код

Класс моноидов (типы с ассоциативной бинарной операцией, имеющей единицу). Экземпляры должны удовлетворять следующим условиям:

Правая единица
x <> mempty = x
Левая единица
mempty <> x = x
Ассоциативность
x <> (y <> z) = (x <> y) <> z (Semigroup закон)
Конкатенация
mconcat = foldr (<>) mempty

Имена методов относятся к моноиду списков при конкатенации, но существует множество других экземпляров.

Некоторые типы могут рассматриваться как моноид более чем одним способом, например, сложение и умножение на числах. В таких случаях мы часто определяем newtype и делаем эти экземпляры Monoid, например, Sum и Product.

ПРИМЕЧАНИЕ: Semigroup является суперклассом Monoid с версии base-4.11.0.0.

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

mempty

Методы

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

Единица mappend

>>> "Hello world" <> mempty
"Hello world"

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

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

ПРИМЕЧАНИЕ: Этот метод избыточен и имеет реализацию по умолчанию mappend = (<>) с версии base-4.11.0.0. Если он реализуется вручную, поскольку mappend является синонимом для (<>), ожидается, что две функции определены одинаково. В будущей версии GHC mappend будет удален из Monoid.

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

Складывает список с помощью моноида.

Для большинства типов будет использоваться определение по умолчанию для mconcat, но функция включена в определение класса, чтобы можно было предоставить оптимизированную версию для конкретных типов.

>>> mconcat ["Hello", " ", "Haskell", "!"]
"Hello Haskell!"
Экземпляры
Подробности экземпляров
Monoid Ordering

Since: base-2.1

Instance details

Defined in GHC.Base

Methods

mempty :: Ordering Source

mappend :: Ordering -> Ordering -> Ordering Source

mconcat :: [Ordering] -> Ordering Source

Monoid ()

Since: base-2.1

Instance details

Defined in GHC.Base

Methods

mempty :: () Source

mappend :: () -> () -> () Source

mconcat :: [()] -> () Source

Monoid Any

Since: base-2.1

Instance details

Defined in Data.Semigroup.Internal

Methods

mempty :: Any Source

mappend :: Any -> Any -> Any Source

mconcat :: [Any] -> Any Source

Monoid All

Since: base-2.1

Instance details

Defined in Data.Semigroup.Internal

Methods

mempty :: All Source

mappend :: All -> All -> All Source

mconcat :: [All] -> All Source

Monoid Lifetime

mappend берёт более длительный из двух периодов существования.

Since: base-4.8.0.0

Instance details

Defined in GHC.Event.Internal

Methods

mempty :: Lifetime Source

mappend :: Lifetime -> Lifetime -> Lifetime Source

mconcat :: [Lifetime] -> Lifetime Source

Monoid Event

Since: base-4.4.0.0

Instance details

Defined in GHC.Event.Internal

Methods

mempty :: Event Source

mappend :: Event -> Event -> Event Source

mconcat :: [Event] -> Event Source

Monoid [a]

Since: base-2.1

Instance details

Defined in GHC.Base

Methods

mempty :: [a] Source

mappend :: [a] -> [a] -> [a] Source

mconcat :: [[a]] -> [a] Source

Semigroup a => Monoid (Maybe a)

Поднять полугруппу в Maybe, образуя Monoid в соответствии с http://en.wikipedia.org/wiki/Monoid: "Любая полугруппа S может быть преобразована в моноид простым добавлением элемента e, не входящего в S, и определением e*e = e и e*s = s = s*e для всех s ∈ S."

Since 4.11.0: ограничение на внутреннее a значение обобщено с Monoid на Semigroup.

Since: base-2.1

Instance details

Defined in GHC.Base

Methods

mempty :: Maybe a Source

mappend :: Maybe a -> Maybe a -> Maybe a Source

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

Monoid a => Monoid (IO a)

Since: base-4.9.0.0

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

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

Методы

mempty :: IO a Source

mappend :: IO a -> IO a -> IO a Source

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

Monoid p => Monoid (Par1 p)

Since: base-4.12.0.0

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

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

Методы

mempty :: Par1 p Source

mappend :: Par1 p -> Par1 p -> Par1 p Source

mconcat :: [Par1 p] -> Par1 p Source

Monoid a => Monoid (Down a)

Since: base-4.11.0.0

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

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

Методы

mempty :: Down a Source

mappend :: Down a -> Down a -> Down a Source

mconcat :: [Down a] -> Down a Source

Num a => Monoid (Product a)

Since: base-2.1

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

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

Методы

mempty :: Product a Source

mappend :: Product a -> Product a -> Product a Source

mconcat :: [Product a] -> Product a Source

Num a => Monoid (Sum a)

Since: base-2.1

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

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

Методы

mempty :: Sum a Source

mappend :: Sum a -> Sum a -> Sum a Source

mconcat :: [Sum a] -> Sum a Source

Monoid (Endo a)

Since: base-2.1

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

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

Методы

mempty :: Endo a Source

mappend :: Endo a -> Endo a -> Endo a Source

mconcat :: [Endo a] -> Endo a Source

Monoid a => Monoid (Dual a)

Since: base-2.1

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

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

Методы

mempty :: Dual a Source

mappend :: Dual a -> Dual a -> Dual a Source

mconcat :: [Dual a] -> Dual a Source

Monoid (Last a)

Since: base-2.1

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

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

Методы

mempty :: Last a Source

mappend :: Last a -> Last a -> Last a Source

mconcat :: [Last a] -> Last a Source

Monoid (First a)

Since: base-2.1

Instance details

Defined in Data.Monoid

Methods

mempty :: First a Source

mappend :: First a -> First a -> First a Source

mconcat :: [First a] -> First a Source

Monoid a => Monoid (Identity a)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Identity

Methods

mempty :: Identity a Source

mappend :: Identity a -> Identity a -> Identity a Source

mconcat :: [Identity a] -> Identity a Source

Semigroup a => Monoid (Option a)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Methods

mempty :: Option a Source

mappend :: Option a -> Option a -> Option a Source

mconcat :: [Option a] -> Option a Source

Monoid m => Monoid (WrappedMonoid m)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Methods

mempty :: WrappedMonoid m Source

mappend :: WrappedMonoid m -> WrappedMonoid m -> WrappedMonoid m Source

mconcat :: [WrappedMonoid m] -> WrappedMonoid m Source

(Ord a, Bounded a) => Monoid (Max a)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Methods

mempty :: Max a Source

mappend :: Max a -> Max a -> Max a Source

mconcat :: [Max a] -> Max a Source

(Ord a, Bounded a) => Monoid (Min a)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Methods

mempty :: Min a Source

mappend :: Min a -> Min a -> Min a Source

mconcat :: [Min a] -> Min a Source

Monoid (Equivalence a)
Instance details

Defined in Data.Functor.Contravariant

Methods

mempty :: Equivalence a Source

mappend :: Equivalence a -> Equivalence a -> Equivalence a Source

mconcat :: [Equivalence a] -> Equivalence a Source

Monoid (Comparison a)
Подробности экземпляра

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

Методы

mempty :: Comparison a Источник

mappend :: Comparison a -> Comparison a -> Comparison a Источник

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

Monoid (Predicate a)
Подробности экземпляра

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

Методы

mempty :: Predicate a Источник

mappend :: Predicate a -> Predicate a -> Predicate a Источник

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

Monoid b => Monoid (a -> b)

С: base-2.1

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

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

Методы

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

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

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

Monoid (U1 p)

С: base-4.12.0.0

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

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

Методы

mempty :: U1 p Источник

mappend :: U1 p -> U1 p -> U1 p Источник

mconcat :: [U1 p] -> U1 p Источник

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

С: base-2.1

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

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

Методы

mempty :: (a, b) Источник

mappend :: (a, b) -> (a, b) -> (a, b) Источник

mconcat :: [(a, b)] -> (a, b) Источник

Monoid a => Monoid (ST s a)

С: base-4.11.0.0

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

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

Методы

mempty :: ST s a Источник

mappend :: ST s a -> ST s a -> ST s a Источник

mconcat :: [ST s a] -> ST s a Источник

Monoid (Proxy s)

С: base-4.7.0.0

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

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

Методы

mempty :: Proxy s Источник

mappend :: Proxy s -> Proxy s -> Proxy s Источник

mconcat :: [Proxy s] -> Proxy s Источник

Monoid a => Monoid (Op a b)
Подробности экземпляра

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

Методы

mempty :: Op a b Источник

mappend :: Op a b -> Op a b -> Op a b Источник

mconcat :: [Op a b] -> Op a b Источник

Monoid (f p) => Monoid (Rec1 f p)

Since: base-4.12.0.0

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

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

Методы

mempty :: Rec1 f p Source

mappend :: Rec1 f p -> Rec1 f p -> Rec1 f p Source

mconcat :: [Rec1 f p] -> Rec1 f p Source

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

Since: base-2.1

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

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

Методы

mempty :: (a, b, c) Source

mappend :: (a, b, c) -> (a, b, c) -> (a, b, c) Source

mconcat :: [(a, b, c)] -> (a, b, c) Source

Alternative f => Monoid (Alt f a)

Since: base-4.8.0.0

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

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

Методы

mempty :: Alt f a Source

mappend :: Alt f a -> Alt f a -> Alt f a Source

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

(Applicative f, Monoid a) => Monoid (Ap f a)

Since: base-4.12.0.0

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

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

Методы

mempty :: Ap f a Source

mappend :: Ap f a -> Ap f a -> Ap f a Source

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

Monoid a => Monoid (Const a b)

Since: base-4.9.0.0

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

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

Методы

mempty :: Const a b Source

mappend :: Const a b -> Const a b -> Const a b Source

mconcat :: [Const a b] -> Const a b Source

Monoid c => Monoid (K1 i c p)

Since: base-4.12.0.0

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

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

Методы

mempty :: K1 i c p Source

mappend :: K1 i c p -> K1 i c p -> K1 i c p Source

mconcat :: [K1 i c p] -> K1 i c p Source

(Monoid (f p), Monoid (g p)) => Monoid ((f :*: g) p)

Since: base-4.12.0.0

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

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

Методы

mempty :: (f :*: g) p Source

mappend :: (f :*: g) p -> (f :*: g) p -> (f :*: g) p Source

mconcat :: [(f :*: g) p] -> (f :*: g) p Source

(Monoid a, Monoid b, Monoid c, Monoid d) => Monoid (a, b, c, d)

Since: base-2.1

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

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

Методы

mempty :: (a, b, c, d) Исходный код

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

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

Monoid (f p) => Monoid (M1 i c f p)

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

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

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

Методы

mempty :: M1 i c f p Исходный код

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

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

Monoid (f (g p)) => Monoid ((f :.: g) p)

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

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

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

Методы

mempty :: (f :.: g) p Исходный код

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

mconcat :: [(f :.: g) p] -> (f :.: g) p Исходный код

(Monoid a, Monoid b, Monoid c, Monoid d, Monoid e) => Monoid (a, b, c, d, e)

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

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

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

Методы

mempty :: (a, b, c, d, e) Исходный код

mappend :: (a, b, c, d, e) -> (a, b, c, d, e) -> (a, b, c, d, e) Исходный код

mconcat :: [(a, b, c, d, e)] -> (a, b, c, d, e) Исходный код

data Opaque Исходный код

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

forall a. O a

type String = [Char] Исходный код

A String — это список символов. Строковые константы в Haskell — это значения типа String.

См. Data.List для операций над списками.

data NonEmpty a Исходный код

Тип списка, не пустого (и не строгого).

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

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

a :| [a] infixr 5
Экземпляры
Подробности экземпляров
Monad NonEmpty

Since: base-4.9.0.0

Instance details

Defined in GHC.Base

Методы

(>>=) :: NonEmpty a -> (a -> NonEmpty b) -> NonEmpty b Source

(>>) :: NonEmpty a -> NonEmpty b -> NonEmpty b Source

return :: a -> NonEmpty a Source

Functor NonEmpty

Since: base-4.9.0.0

Instance details

Defined in GHC.Base

Методы

fmap :: (a -> b) -> NonEmpty a -> NonEmpty b Source

(<$) :: a -> NonEmpty b -> NonEmpty a Source

MonadFix NonEmpty

Since: base-4.9.0.0

Instance details

Defined in Control.Monad.Fix

Методы

mfix :: (a -> NonEmpty a) -> NonEmpty a Source

Applicative NonEmpty

Since: base-4.9.0.0

Instance details

Defined in GHC.Base

Методы

pure :: a -> NonEmpty a Source

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

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

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

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

Foldable NonEmpty

Since: base-4.9.0.0

Instance details

Defined in Data.Foldable

Методы

fold :: Monoid m => NonEmpty m -> m Source

foldMap :: Monoid m => (a -> m) -> NonEmpty a -> m Source

foldMap' :: Monoid m => (a -> m) -> NonEmpty a -> m Source

foldr :: (a -> b -> b) -> b -> NonEmpty a -> b Source

foldr' :: (a -> b -> b) -> b -> NonEmpty a -> b Source

foldl :: (b -> a -> b) -> b -> NonEmpty a -> b Source

foldl' :: (b -> a -> b) -> b -> NonEmpty a -> b Source

foldr1 :: (a -> a -> a) -> NonEmpty a -> a Source

foldl1 :: (a -> a -> a) -> NonEmpty a -> a Source

toList :: NonEmpty a -> [a] Source

null :: NonEmpty a -> Bool Source

length :: NonEmpty a -> Int Source

elem :: Eq a => a -> NonEmpty a -> Bool Source

maximum :: Ord a => NonEmpty a -> a Source

minimum :: Ord a => NonEmpty a -> a Source

sum :: Num a => NonEmpty a -> a Source

product :: Num a => NonEmpty a -> a Source

Traversable NonEmpty

Since: base-4.9.0.0

Instance details

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

Методы

traverse :: Applicative f => (a -> f b) -> NonEmpty a -> f (NonEmpty b) Source

sequenceA :: Applicative f => NonEmpty (f a) -> f (NonEmpty a) Source

mapM :: Monad m => (a -> m b) -> NonEmpty a -> m (NonEmpty b) Source

sequence :: Monad m => NonEmpty (m a) -> m (NonEmpty a) Source

MonadZip NonEmpty

Since: base-4.9.0.0

Instance details

Определено в Control.Monad.Zip

Методы

mzip :: NonEmpty a -> NonEmpty b -> NonEmpty (a, b) Source

mzipWith :: (a -> b -> c) -> NonEmpty a -> NonEmpty b -> NonEmpty c Source

munzip :: NonEmpty (a, b) -> (NonEmpty a, NonEmpty b) Source

Show1 NonEmpty

Since: base-4.10.0.0

Instance details

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

Методы

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

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

Read1 NonEmpty

Since: base-4.10.0.0

Instance details

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

Методы

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

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

liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (NonEmpty a) Source

liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [NonEmpty a] Source

Ord1 NonEmpty

Since: base-4.10.0.0

Instance details

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

Методы

liftCompare :: (a -> b -> Ordering) -> NonEmpty a -> NonEmpty b -> Ordering Source

Eq1 NonEmpty

Since: base-4.10.0.0

Instance details

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

Методы

liftEq :: (a -> b -> Bool) -> NonEmpty a -> NonEmpty b -> Bool Source

IsList (NonEmpty a)

Since: base-4.9.0.0

Instance details

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

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

type Item (NonEmpty a) Source

Методы

fromList :: [Item (NonEmpty a)] -> NonEmpty a Source

fromListN :: Int -> [Item (NonEmpty a)] -> NonEmpty a Source

toList :: NonEmpty a -> [Item (NonEmpty a)] Source

Eq a => Eq (NonEmpty a)

Since: base-4.9.0.0

Instance details

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

Методы

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

(/=) :: NonEmpty a -> NonEmpty a -> Bool Source

Data a => Data (NonEmpty a)

Since: base-4.9.0.0

Instance details

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

Методы

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

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

toConstr :: NonEmpty a -> Constr Source

dataTypeOf :: NonEmpty a -> DataType Source

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

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

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

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

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

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

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

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

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

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

Ord a => Ord (NonEmpty a)

Since: base-4.9.0.0

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

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

Методы

compare :: NonEmpty a -> NonEmpty a -> Ordering Исходный код

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

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

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

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

max :: NonEmpty a -> NonEmpty a -> NonEmpty a Исходный код

min :: NonEmpty a -> NonEmpty a -> NonEmpty a Исходный код

Read a => Read (NonEmpty a)

С версии: base-4.11.0.0

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

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

Методы

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

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

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

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

Show a => Show (NonEmpty a)

С версии: base-4.11.0.0

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

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

Методы

showsPrec :: Int -> NonEmpty a -> ShowS Исходный код

show :: NonEmpty a -> String Исходный код

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

Generic (NonEmpty a)

С версии: base-4.6.0.0

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

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

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

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

Методы

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

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

Semigroup (NonEmpty a)

С версии: base-4.9.0.0

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

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

Методы

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

sconcat :: NonEmpty (NonEmpty a) -> NonEmpty a Исходный код

stimes :: Integral b => b -> NonEmpty a -> NonEmpty a Исходный код

Generic1 NonEmpty

С версии: base-4.6.0.0

Детали экземпляра

Определено в GHC.Generics

Связанные типы

type Rep1 NonEmpty :: k -> Type Исходный код

Методы

from1 :: forall (a :: k). NonEmpty a -> Rep1 NonEmpty a Исходный код

to1 :: forall (a :: k). Rep1 NonEmpty a -> NonEmpty a Исходный код

type Rep (NonEmpty a)
Подробности экземпляра

Определено в GHC.Generics

type Rep (NonEmpty a) = D1 ('MetaData "NonEmpty" "GHC.Base" "base" 'False) (C1 ('MetaCons ":|" ('InfixI 'LeftAssociative 9) 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [a])))
type Item (NonEmpty a)
Подробности экземпляра

Определено в GHC.Exts

type Item (NonEmpty a) = a
type Rep1 NonEmpty
Подробности экземпляра

Определено в GHC.Generics

type Rep1 NonEmpty = D1 ('MetaData "NonEmpty" "GHC.Base" "base" 'False) (C1 ('MetaCons ":|" ('InfixI 'LeftAssociative 9) 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1 :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 [])))

class (Alternative m, Monad m) => MonadPlus m where Исходный код

Моноиды, которые также поддерживают выбор и ошибки.

Минимальное полное определение

Nothing

Методы

mzero :: m a Исходный код

Тождество mplus. Оно также должно удовлетворять уравнениям

mzero >>= f  =  mzero
v >> mzero   =  mzero

По умолчанию определение:

mzero = empty

mplus :: m a -> m a -> m a Исходный код

Ассоциативная операция. По умолчанию определение:

mplus = (<|>)
Экземпляры
Подробности об экземплярах
MonadPlus []

С версии: base-2.1

Подробности об экземпляре

Определено в GHC.Base

Методы

mzero :: [a] Источник

mplus :: [a] -> [a] -> [a] Источник

MonadPlus Maybe

С версии: base-2.1

Подробности об экземпляре

Определено в GHC.Base

Методы

mzero :: Maybe a Источник

mplus :: Maybe a -> Maybe a -> Maybe a Источник

MonadPlus IO

С версии: base-4.9.0.0

Подробности об экземпляре

Определено в GHC.Base

Методы

mzero :: IO a Источник

mplus :: IO a -> IO a -> IO a Источник

MonadPlus ReadP

С версии: base-2.1

Подробности об экземпляре

Определено в Text.ParserCombinators.ReadP

Методы

mzero :: ReadP a Источник

mplus :: ReadP a -> ReadP a -> ReadP a Источник

MonadPlus ReadPrec

С версии: base-2.1

Подробности об экземпляре

Определено в Text.ParserCombinators.ReadPrec

Методы

mzero :: ReadPrec a Источник

mplus :: ReadPrec a -> ReadPrec a -> ReadPrec a Источник

MonadPlus STM

С версии: base-4.3.0.0

Подробности об экземпляре

Определено в GHC.Conc.Sync

Методы

mzero :: STM a Источник

mplus :: STM a -> STM a -> STM a Источник

MonadPlus Option

С версии: base-4.9.0.0

Подробности об экземпляре

Определено в Data.Semigroup

Методы

mzero :: Option a Источник

mplus :: Option a -> Option a -> Option a Источник

MonadPlus (U1 :: Type -> Type)

С версии: base-4.9.0.0

Подробности об экземпляре

Определено в GHC.Generics

Методы

mzero :: U1 a Источник

mplus :: U1 a -> U1 a -> U1 a Источник

MonadPlus (Proxy :: Type -> Type)

С версии: base-4.9.0.0

Подробности об экземпляре

Определено в Data.Proxy

Методы

mzero :: Proxy a Источник

mplus :: Proxy a -> Proxy a -> Proxy a Источник

(ArrowApply a, ArrowPlus a) => MonadPlus (ArrowMonad a)

С версии: base-4.6.0.0

Instance details

Определено в Control.Arrow

Методы

mzero :: ArrowMonad a a0 Source

mplus :: ArrowMonad a a0 -> ArrowMonad a a0 -> ArrowMonad a a0 Source

MonadPlus f => MonadPlus (Rec1 f)

Since: base-4.9.0.0

Instance details

Определено в GHC.Generics

Методы

mzero :: Rec1 f a Source

mplus :: Rec1 f a -> Rec1 f a -> Rec1 f a Source

MonadPlus f => MonadPlus (Alt f)

Since: base-4.8.0.0

Instance details

Определено в Data.Semigroup.Internal

Методы

mzero :: Alt f a Source

mplus :: Alt f a -> Alt f a -> Alt f a Source

MonadPlus f => MonadPlus (Ap f)

Since: base-4.12.0.0

Instance details

Определено в Data.Monoid

Методы

mzero :: Ap f a Source

mplus :: Ap f a -> Ap f a -> Ap f a Source

MonadPlus m => MonadPlus (Kleisli m a)

Since: base-4.14.0.0

Instance details

Определено в Control.Arrow

Методы

mzero :: Kleisli m a a0 Source

mplus :: Kleisli m a a0 -> Kleisli m a a0 -> Kleisli m a a0 Source

(MonadPlus f, MonadPlus g) => MonadPlus (f :*: g)

Since: base-4.9.0.0

Instance details

Определено в GHC.Generics

Методы

mzero :: (f :*: g) a Source

mplus :: (f :*: g) a -> (f :*: g) a -> (f :*: g) a Source

(MonadPlus f, MonadPlus g) => MonadPlus (Product f g)

Since: base-4.9.0.0

Instance details

Определено в Data.Functor.Product

Методы

mzero :: Product f g a Source

mplus :: Product f g a -> Product f g a -> Product f g a Source

MonadPlus f => MonadPlus (M1 i c f)

Since: base-4.9.0.0

Instance details

Определено в GHC.Generics

Методы

mzero :: M1 i c f a Source

mplus :: M1 i c f a -> M1 i c f a -> M1 i c f a Source

class Applicative f => Alternative f where Source

Моноид на аппликативных функторах.

Если определено, some и many должны быть наименьшими решениями уравнений:

  • some v = (:) <$> v <*> many v
  • many v = some v <|> pure []

Минимальное полное определение

empty, (<|>)

Методы

empty :: f a Source

Единичный элемент <|>

(<|>) :: f a -> f a -> f a infixl 3 Source

Ассоциативная бинарная операция

some :: f a -> f [a] Source

Один или более.

many :: f a -> f [a] Source

Ноль или более.

Экземпляры
Подробности о экземплярах
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

Подробности о экземпляре

Определено в GHC.Generics

Методы

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

Подробности о экземпляре

Определено в Data.Semigroup.Internal

Методы

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

Подробности о экземпляре

Определено в Data.Monoid

Методы

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

Подробности о экземпляре

Определено в Control.Arrow

Методы

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

Подробности о экземпляре

Определено в 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

(Alternative f, Alternative g) => Alternative (f :*: g)

Since: base-4.9.0.0

Instance details

Определено в GHC.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 g) => Alternative (Product f g)

Since: base-4.9.0.0

Instance details

Определено в Data.Functor.Product

Методы

empty :: Product f g a Source

(<|>) :: Product f g a -> Product f g a -> Product f g a Source

some :: Product f g a -> Product f g [a] Source

many :: Product f g a -> Product f g [a] Source

Alternative f => Alternative (M1 i c f)

Since: base-4.9.0.0

Instance details

Определено в GHC.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

(Alternative f, Applicative g) => Alternative (f :.: g)

Since: base-4.9.0.0

Instance details

Определено в GHC.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, Applicative g) => Alternative (Compose f g)

Since: base-4.9.0.0

Instance details

Определено в 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

(<**>) :: Applicative f => f a -> f (a -> b) -> f b infixl 4 Source

Вариант <*> с измененным порядком аргументов.

Используя ApplicativeDo: 'as <**> fs' можно понимать как выражение do

do a <- as
   f <- fs
   pure (f a)

liftA :: Applicative f => (a -> b) -> f a -> f b Source

Поднять функцию до действий. Эта функция может использоваться как значение для 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 Source

Поднять тернарную функцию до действий.

Используя ApplicativeDo: 'liftA3 f as bs cs' можно понимать как выражение do

do a <- as
   b <- bs
   c <- cs
   pure (f a b c)

(=<<) :: Монад m => (a -> m b) -> m a -> m b infixr 1 Source

То же самое, что >>=, но с аргументами, поменянными местами.

when :: Прикладной f => Булево -> f () -> f () Source

Условное выполнение Applicative выражений. Например,

when debug (putStrLn "Debugging")

выведет строку Debugging, если булево значение debug является True, и в противном случае ничего не сделает.

sequence :: Монад m => [m a] -> m [a] Source

Выполнить каждое действие в последовательности слева направо и собрать результаты.

mapM :: Монад m => (a -> m b) -> [a] -> m [b] Source

mapM f эквивалентно sequence . map f.

liftM :: Монад m => (a1 -> r) -> m a1 -> m r Source

Поднять функцию в монаду.

liftM2 :: Монад m => (a1 -> a2 -> r) -> m a1 -> m a2 -> m r Source

Поднять функцию в монаду, сканируя монадические аргументы слева направо. Например,

liftM2 (+) [0,1] [0,2] = [0,2,1,3]
liftM2 (+) (Just 1) Nothing = Nothing

liftM3 :: Монад m => (a1 -> a2 -> a3 -> r) -> m a1 -> m a2 -> m a3 -> m r Source

Поднять функцию в монаду, сканируя монадические аргументы слева направо (см. liftM2).

liftM4 :: Монад m => (a1 -> a2 -> a3 -> a4 -> r) -> m a1 -> m a2 -> m a3 -> m a4 -> m r Source

Поднять функцию в монаду, сканируя монадические аргументы слева направо (см. liftM2).

liftM5 :: Монад m => (a1 -> a2 -> a3 -> a4 -> a5 -> r) -> m a1 -> m a2 -> m a3 -> m a4 -> m a5 -> m r Source

Поднять функцию в монаду, сканируя монадические аргументы слева направо (см. liftM2).

ap :: Монад m => m (a -> b) -> m a -> m b Source

Во многих ситуациях, liftM операции могут быть заменены использованием ap, что повышает функцию применения.

return f `ap` x1 `ap` ... `ap` xn

эквивалентно

liftMn f x1 x2 ... xn

mapFB :: (elt -> lst -> lst) -> (a -> elt) -> a -> lst -> lst Source

unsafeChr :: Целое -> Символ Source

ord :: Символ -> Целое Source

Метод fromEnum ограничен типом Char.

minInt :: Целое Source

maxInt :: Целое Source

id :: a -> a Source

Функция тождества.

id x = x

const :: a -> b -> a Source

const x — это функция с одним аргументом, которая возвращает x для всех входных данных.

>>> const 42 "hello"
42
>>> map (const 42) [0..3]
[42,42,42,42]

(.) :: (b -> c) -> (a -> b) -> a -> c infixr 9 Source

Состав функций.

flip :: (a -> b -> c) -> b -> a -> c Source

flip f принимает свои (первые) два аргумента в обратном порядке по сравнению с f.

>>> flip (++) "hello" "world"
"worldhello"

($!) :: forall r a (b :: Тип r). (a -> b) -> a -> b infixr 0 Source

Строгое (вызов по значению) оператор применения. Он принимает функцию и аргумент, оценивает аргумент до слабой нормальной формы (СНФ), а затем вызывает функцию с этим значением.

until :: (a -> Булево) -> (a -> a) -> a -> a Source

until p f возвращает результат применения f до тех пор, пока p не станет истинным.

asTypeOf :: a -> a -> a Source

asTypeOf — это ограниченная типом версия const . Она обычно используется как инфиксный оператор, и её типизация принуждает её первый аргумент (который обычно перегружен) иметь тот же тип, что и второй.

failIO :: Строка -> IO a Source

unIO :: IO a -> State# RealWorld -> (# State# RealWorld, a #) Source

getTag :: a -> Int# Source

Возвращает тег применения конструктора; эта функция используется кодом для вывода Eq, Ord и Enum.

quotInt :: Целое -> Целое -> Целое Source

remInt :: Целое -> Целое -> Целое Source

divInt :: Целое -> Целое -> Целое Source

modInt :: Целое -> Целое -> Целое Source

quotRemInt :: Целое -> Целое -> (Целое, Целое) Source

divModInt :: Int -> Int -> (Int, Int) Источник

divModInt# :: Int# -> Int# -> (# Int#, Int# #) Источник

shiftL# :: Word# -> Int# -> Word# Источник

Сдвиг аргумента влево на указанное количество битов (которое должно быть неотрицательным).

shiftRL# :: Word# -> Int# -> Word# Источник

Сдвиг аргумента вправо на указанное количество битов (которое должно быть неотрицательным). RL означает "вправо, логическое" (в отличие от RA для арифметического) (хотя арифметический сдвиг вправо не имеет смысла для Word#).

iShiftL# :: Int# -> Int# -> Int# Источник

Сдвиг аргумента влево на указанное количество битов (которое должно быть неотрицательным).

iShiftRA# :: Int# -> Int# -> Int# Источник

Сдвиг аргумента вправо (знаковый) на указанное количество битов (которое должно быть неотрицательным). RA означает "вправо, арифметическое" (в отличие от RL для логического)

iShiftRL# :: Int# -> Int# -> Int# Источник

Сдвиг аргумента вправо (беззнаковый) на указанное количество битов (которое должно быть неотрицательным). RL означает "вправо, логическое" (в отличие от RA для арифметического)

module GHC.Classes

module GHC.CString

module GHC.Magic

module GHC.Types

module GHC.Prim

module GHC.Prim.Ext

module GHC.Err

module GHC.Maybe

© 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/GHC-Base.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API