Data.Monoid
| Авторские права | (c) Andy Gill 2001 (c) Oregon Graduate Institute of Science and Technology 2001 |
|---|---|
| Лицензия | BSD-стиль (см. файл libraries/base/LICENSE) |
| Поддержка | libraries@haskell.org |
| Стабильность | стабильная |
| Переносимость | переносимая |
| Безопасный Haskell | Безопасный |
| Язык | Haskell2010 |
Описание
Тип a является Monoid, если он предоставляет ассоциативную функцию (<>), которая позволяет объединять любые два значения типа a в одно, и нейтральный элемент (mempty), такой что
a <> mempty == mempty <> a == a
Monoid является Semigroup, с дополнительным требованием нейтрального элемента. Таким образом, любой Monoid является Semigroup, но не наоборот.
Примеры
Моноид Sum определяется оператором числового сложения и `0` в качестве нейтрального элемента:
>>> import Data.Int
>>> mempty :: Sum Int
Sum {getSum = 0}
>>> Sum 1 <> Sum 2 <> Sum 3 <> Sum 4 :: Sum Int
Sum {getSum = 10}
Мы можем объединить несколько значений в списке в одно значение, используя функцию mconcat. Обратите внимание, что нам необходимо указать тип здесь, так как Int является моноидом по нескольким различным операциям:
>>> mconcat [1,2,3,4] :: Sum Int
Sum {getSum = 10}
>>> mconcat [] :: Sum Int
Sum {getSum = 0}
Другой допустимый экземпляр моноида для Int - Product. Он определяется умножением и `1` в качестве нейтрального элемента:
>>> Product 1 <> Product 2 <> Product 3 <> Product 4 :: Product Int
Product {getProduct = 24}
>>> mconcat [1,2,3,4] :: Product Int
Product {getProduct = 24}
>>> mconcat [] :: Product Int
Product {getProduct = 1}
Класс типов Monoid
class Semigroup a => Monoid a where Исходный код
Класс моноидов (типы с ассоциативной бинарной операцией, имеющей тождество). Экземпляры должны удовлетворять следующим условиям:
- Тождество справа
x <> mempty = x- Тождество слева
mempty <> x = x- Ассоциативность
-
x <> (y <> z) = (x <> y) <> z(Semigroupзакон) - Конкатенация
mconcat = foldr (<>) mempty
Вы можете альтернативно определить mconcat вместо mempty, в этом случае законы будут:
- Единица
mconcat (pure x) = x- Умножение
mconcat (join xss) = mconcat (fmap mconcat xss)- Подкласс
mconcat (toList xs) = sconcat xs
Имена методов относятся к моноиду списков при конкатенации, но существуют и другие экземпляры.
Некоторые типы могут рассматриваться как моноид более чем одним способом, например, сложение и умножение чисел. В таких случаях мы часто определяем newtype и делаем эти экземпляры Monoid, например, Sum и Product.
ПРИМЕЧАНИЕ: Semigroup является суперклассом Monoid с версии base-4.11.0.0.
Методы
mempty :: a Исходный код
Тождество mappend
Примеры
>>> "Hello world" <> mempty "Hello world"
>>> mempty <> [1, 2, 3] [1,2,3]
mappend :: a -> a -> a Исходный код
Ассоциативная операция
ПРИМЕЧАНИЕ: Этот метод избыточен и имеет реализацию по умолчанию mappend = (<>) с версии base-4.11.0.0. Если он реализован вручную, поскольку mappend является синонимом для (<>), ожидается, что обе функции определены одинаково. В будущей версии GHC mappend будет удален из Monoid.
mconcat :: [a] -> a Исходный код
Сложить список, используя моноид.
Для большинства типов будет использоваться определение по умолчанию для mconcat, но функция включена в определение класса, чтобы можно было предоставить оптимизированную версию для определенных типов.
>>> mconcat ["Hello", " ", "Haskell", "!"] "Hello Haskell!"
Экземпляры
| Monoid ByteArray Источник | С версии: base-4.17.0.0 |
| Monoid All Источник | С версии: base-2.1 |
| Monoid Any Источник | С версии: base-2.1 |
| Monoid Event Источник | С версии: base-4.4.0.0 |
| Monoid EventLifetime Источник | С версии: base-4.8.0.0 |
| Monoid Lifetime Источник |
С версии: base-4.8.0.0 |
| Monoid ExceptionContext Источник | |
Определено в GHC.Internal.Exception.Context Методыmempty :: ExceptionContext Источник mappend :: ExceptionContext -> ExceptionContext -> ExceptionContext Источник | |
| Monoid Ordering Источник | С версии: base-2.1 |
| Monoid () Источник | С версии: base-2.1 |
| Monoid (Comparison a) Источник |
mempty :: Comparison a mempty = Comparison _ _ -> EQ |
Определено в Data.Functor.Contravariant Методыmempty :: Comparison a Источник mappend :: Comparison a -> Comparison a -> Comparison a Источник mconcat :: [Comparison a] -> Comparison a Источник | |
| Monoid (Equivalence a) Источник |
mempty :: Equivalence a mempty = Equivalence _ _ -> True |
Определено в Data.Functor.Contravariant Методыmempty :: Equivalence a Источник mappend :: Equivalence a -> Equivalence a -> Equivalence a Источник mconcat :: [Equivalence a] -> Equivalence a Источник | |
| Monoid (Predicate a) Источник |
mempty :: Predicate a mempty = _ -> True |
| (Ord a, Bounded a) => Monoid (Max a) Источник | С версии: base-4.9.0.0 |
Определено в Data.Semigroup Методыmempty :: Max a Исходный код mappend :: Max a -> Max a -> Max a Исходный код mconcat :: [Max a] -> Max a Исходный код | |
| (Ord a, Bounded a) => Monoid (Min a) Исходный код | С момента: base-4.9.0.0 |
Определено в Data.Semigroup Методыmempty :: Min a Исходный код mappend :: Min a -> Min a -> Min a Исходный код mconcat :: [Min a] -> Min a Исходный код | |
| Monoid m => Monoid (WrappedMonoid m) Исходный код | С момента: base-4.9.0.0 |
Определено в Data.Semigroup Методыmempty :: WrappedMonoid m Исходный код mappend :: WrappedMonoid m -> WrappedMonoid m -> WrappedMonoid m Исходный код mconcat :: [WrappedMonoid m] -> WrappedMonoid m Исходный код | |
| Monoid a => Monoid (STM a) Исходный код | С момента: base-4.17.0.0 |
Определено в GHC.Internal.Conc.Sync Методыmempty :: STM a Исходный код mappend :: STM a -> STM a -> STM a Исходный код mconcat :: [STM a] -> STM a Исходный код | |
| FiniteBits a => Monoid (And a) Исходный код |
Это ограничение, вероятно, слишком сильное. Однако, поскольку у некоторых типов (например, С момента: base-4.16 |
Определено в GHC.Internal.Data.Bits Методыmempty :: And a Исходный код mappend :: And a -> And a -> And a Исходный код mconcat :: [And a] -> And a Исходный код | |
| FiniteBits a => Monoid (Iff a) Исходный код |
Это ограничение, вероятно, слишком сильное. Однако, поскольку у некоторых типов (например, С момента: base-4.16 |
Определено в GHC.Internal.Data.Bits Методыmempty :: Iff a Исходный код mappend :: Iff a -> Iff a -> Iff a Исходный код mconcat :: [Iff a] -> Iff a Исходный код | |
| Bits a => Monoid (Ior a) Исходный код | С момента: base-4.16 |
Определено в GHC.Internal.Data.Semigroup.Internal Методыmempty :: Sum a Исходный код mappend :: Sum a -> Sum a -> Sum a Исходный код mconcat :: [Sum a] -> Sum a Исходный код | |
| (Generic a, Monoid (Rep a ())) => Monoid (Generically a) Исходный код | С момента: base-4.17.0.0 |
Определено в GHC.Internal.Generics Методыmempty :: Generically a Исходный код mappend :: Generically a -> Generically a -> Generically a Исходный код mconcat :: [Generically a] -> Generically a Исходный код | |
| Monoid p => Monoid (Par1 p) Исходный код | С момента: base-4.12.0.0 |
Определено в GHC.Internal.Generics Методыmempty :: Par1 p Исходный код mappend :: Par1 p -> Par1 p -> Par1 p Исходный код mconcat :: [Par1 p] -> Par1 p Исходный код | |
| Monoid a => Monoid (Q a) Исходный код | С момента: ghc-internal-2.17.0.0 |
Определено в GHC.Internal.TH.Syntax Методыmempty :: Q a Исходный код mappend :: Q a -> Q a -> Q a Исходный код mconcat :: [Q a] -> Q a Исходный код | |
| Monoid a => Monoid (IO a) Исходный код | С момента: base-4.9.0.0 |
Определено в GHC.Internal.Base Методыmempty :: IO a Исходный код mappend :: IO a -> IO a -> IO a Исходный код mconcat :: [IO a] -> IO a Исходный код | |
| Semigroup a => Monoid (Maybe a) Исходный код |
Поднятие полугруппы в С момента 4.11.0: ограничение на внутреннее значение С момента: base-2.1 |
Определено в GHC.Internal.ST Методыmempty :: ST s a Исходный код mappend :: ST s a -> ST s a -> ST s a Исходный код mconcat :: [ST s a] -> ST s a Исходный код | |
| (Monoid a, Monoid b) => Monoid (a, b) Исходный код | С версии: base-2.1 |
Определено в GHC.Internal.Base Методыmempty :: (a, b) Исходный код mappend :: (a, b) -> (a, b) -> (a, b) Исходный код mconcat :: [(a, b)] -> (a, b) Исходный код | |
| Monoid b => Monoid (a -> b) Исходный код | С версии: base-2.1 |
Определено в GHC.Internal.Base Методыmempty :: a -> b Исходный код mappend :: (a -> b) -> (a -> b) -> a -> b Исходный код mconcat :: [a -> b] -> a -> b Исходный код | |
| Monoid a => Monoid (Const a b) Исходный код | С версии: base-4.9.0.0 |
Определено в GHC.Internal.Data.Functor.Const Методыmempty :: Const a b Исходный код mappend :: Const a b -> Const a b -> Const a b Исходный код mconcat :: [Const a b] -> Const a b Исходный код | |
| (Applicative f, Monoid a) => Monoid (Ap f a) Исходный код | С версии: base-4.12.0.0 |
Определено в GHC.Internal.Data.Monoid Методыmempty :: Ap f a Исходный код mappend :: Ap f a -> Ap f a -> Ap f a Исходный код mconcat :: [Ap f a] -> Ap f a Исходный код | |
| Alternative f => Monoid (Alt f a) Исходный код | С версии: base-4.8.0.0 |
Определено в GHC.Internal.Data.Semigroup.Internal Методыmempty :: Alt f a Исходный код mappend :: Alt f a -> Alt f a -> Alt f a Исходный код mconcat :: [Alt f a] -> Alt f a Исходный код | |
| Monoid (f p) => Monoid (Rec1 f p) Исходный код | С версии: base-4.12.0.0 |
| (Monoid a, Monoid b, Monoid c) => Monoid (a, b, c) Источник | С момента выпуска: base-2.1 |
| (Monoid (f a), Monoid (g a)) => Monoid (Product f g a) Источник | С момента выпуска: base-4.16.0.0 |
| (Monoid (f p), Monoid (g p)) => Monoid ((f :*: g) p) Источник | С момента выпуска: base-4.12.0.0 |
| Monoid c => Monoid (K1 i c p) Источник | С момента выпуска: base-4.12.0.0 |
| (Monoid a, Monoid b, Monoid c, Monoid d) => Monoid (a, b, c, d) Источник | С момента выпуска: base-2.1 |
| Monoid (f (g a)) => Monoid (Compose f g a) Источник | С момента выпуска: base-4.16.0.0 |
(<>) :: Semigroup a => a -> a -> a infixr 6 Источник
Ассоциативная операция.
Примеры
>>> [1,2,3] <> [4,5,6] [1,2,3,4,5,6]
>>> Just [1, 2, 3] <> Just [4, 5, 6] Just [1,2,3,4,5,6]
>>> putStr "Hello, " <> putStrLn "World!" Hello, World!
Дуаль Monoid, полученная путём перестановки аргументов (<>).
Dual a <> Dual b == Dual (b <> a)
Примеры
>>> Dual "Hello" <> Dual "World"
Dual {getDual = "WorldHello"}
>>> Dual (Dual "Hello") <> Dual (Dual "World")
Dual {getDual = Dual {getDual = "HelloWorld"}}
Экземпляры
| MonadZip Dual Source | Since: ghc-internal-4.8.0.0 |
| Foldable Dual Source | Since: base-4.8.0.0 |
Defined in GHC.Internal.Data.Foldable Краткое описание методовfold :: Monoid m => Dual m -> m Source foldMap :: Monoid m => (a -> m) -> Dual a -> m Source foldMap' :: Monoid m => (a -> m) -> Dual a -> m Source foldr :: (a -> b -> b) -> b -> Dual a -> b Source foldr' :: (a -> b -> b) -> b -> Dual a -> b Source foldl :: (b -> a -> b) -> b -> Dual a -> b Source foldl' :: (b -> a -> b) -> b -> Dual a -> b Source foldr1 :: (a -> a -> a) -> Dual a -> a Source foldl1 :: (a -> a -> a) -> Dual a -> a Source toList :: Dual a -> [a] Source length :: Dual a -> Int Source elem :: Eq a => a -> Dual a -> Bool Source maximum :: Ord a => Dual a -> a Source minimum :: Ord a => Dual a -> a Source | |
| Traversable Dual Source | Since: base-4.8.0.0 |
Defined in GHC.Internal.Data.Traversable | |
| Generic1 Dual Source | |
Определено в GHC.Internal.Data.Semigroup.Internal Связанные типы
| |||||
| Monoid a => Monoid (Dual a) Исходный код | С момента: base-2.1 |
||||
Определено в GHC.Internal.Data.Semigroup.Internal Методыmempty :: Dual a Исходный код mappend :: Dual a -> Dual a -> Dual a Исходный код mconcat :: [Dual a] -> Dual a Исходный код | |||||
| Semigroup a => Semigroup (Dual a) Исходный код | С момента: base-4.9.0.0 |
||||
Определено в GHC.Internal.Data.Semigroup.Internal Методы(<>) :: Dual a -> Dual a -> Dual a Исходный код sconcat :: NonEmpty (Dual a) -> Dual a Исходный код stimes :: Integral b => b -> Dual a -> Dual a Исходный код | |||||
| Data a => Data (Dual a) Исходный код | С момента: base-4.8.0.0 |
||||
Определено в GHC.Internal.Data.Data Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Dual a -> c (Dual a) Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Dual a) Исходный код toConstr :: Dual a -> Constr Исходный код dataTypeOf :: Dual a -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Dual a)) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Dual a)) Исходный код gmapT :: (forall b. Data b => b -> b) -> Dual a -> Dual a Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Dual a -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Dual a -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> Dual a -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> Dual a -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> Dual a -> m (Dual a) Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Dual a -> m (Dual a) Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Dual a -> m (Dual a) Исходный код | |||||
| Bounded a => Bounded (Dual a) Исходный код | С момента: base-2.1 |
||||
Определено в GHC.Internal.Data.Semigroup.Internal | |||||
| Generic (Dual a) Исходный код | |||||
Определено в GHC.Internal.Data.Semigroup.Internal Связанные типы
| |||||
| Read a => Read (Dual a) Source | Since: base-2.1 |
| Show a => Show (Dual a) Source | Since: base-2.1 |
| Eq a => Eq (Dual a) Source | Since: base-2.1 |
| Ord a => Ord (Dual a) Source | Since: base-2.1 |
Определено в GHC.Internal.Data.Semigroup.Internal | |
| type Rep1 Dual Source | Since: base-4.7.0.0 |
Определено в GHC.Internal.Data.Semigroup.Internal | |
| type Rep (Dual a) Source | Since: base-4.7.0.0 |
Определено в GHC.Internal.Data.Semigroup.Internal |
Моноид эндоморфизмов при композиции.
Endo f <> Endo g == Endo (f . g)
Примеры
>>> let computation = Endo ("Hello, " ++) <> Endo (++ "!")
>>> appEndo computation "Haskell"
"Hello, Haskell!"
>>> let computation = Endo (*3) <> Endo (+1) >>> appEndo computation 1 6
Экземпляры
| Monoid (Endo a) Источник | С версии: base-2.1 |
||||
| Semigroup (Endo a) Источник | С версии: base-4.9.0.0 |
||||
| Generic (Endo a) Источник | |||||
Определено в GHC.Internal.Data.Semigroup.Internal Связанные типы
| |||||
| type Rep (Endo a) Источник | С версии: base-4.7.0.0 |
||||
Определено в GHC.Internal.Data.Semigroup.Internal | |||||
Обёртки для Bool
Булевый моноид при конъюнкции (&&).
All x <> All y = All (x && y)
Примеры
>>> All True <> mempty <> All False)
All {getAll = False}
>>> mconcat (map (\x -> All (even x)) [2,4,6,7,8])
All {getAll = False}
>>> All True <> mempty
All {getAll = True}
Экземпляры
| Monoid All Источник | С версии: base-2.1 |
| Semigroup All Источник | С версии: base-4.9.0.0 |
| Data All Источник | С версии: base-4.8.0.0 |
Определено в GHC.Internal.Data.Data Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> All -> c All Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c All Источник toConstr :: All -> Constr Источник dataTypeOf :: All -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c All) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c All) Источник gmapT :: (forall b. Data b => b -> b) -> All -> All Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> All -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> All -> r Источник gmapQ :: (forall d. Data d => d -> u) -> All -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> All -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> All -> m All Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> All -> m All Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> All -> m All Источник | |
| Bounded All Источник | С версии: base-2.1 |
Определено в GHC.Internal.Data.Semigroup.Internal | |||||
| Generic All Исходный код | |||||
Определено в GHC.Internal.Data.Semigroup.Internal Связанные типы
| |||||
| Read All Исходный код | С тех пор: base-2.1 |
||||
Определено в GHC.Internal.Data.Semigroup.Internal МетодыreadsPrec :: Int -> ReadS All Исходный код readList :: ReadS [All] Исходный код | |||||
| Show All Исходный код | С тех пор: base-2.1 |
||||
Определено в GHC.Internal.Data.Semigroup.Internal МетодыshowsPrec :: Int -> All -> ShowS Исходный код show :: All -> String Исходный код showList :: [All] -> ShowS Исходный код | |||||
| Eq All Исходный код | С тех пор: base-2.1 |
||||
Определено в GHC.Internal.Data.Semigroup.Internal | |||||
| Ord All Исходный код | С тех пор: base-2.1 |
||||
Определено в GHC.Internal.Data.Semigroup.Internal Методыcompare :: All -> All -> Ordering Исходный код (<) :: All -> All -> Bool Исходный код (<=) :: All -> All -> Bool Исходный код (>) :: All -> All -> Bool Исходный код (>=) :: All -> All -> Bool Исходный код max :: All -> All -> All Исходный код min :: All -> All -> All Исходный код | |
| type Rep All Исходный код | С версии: base-4.7.0.0 |
Определено в GHC.Internal.Data.Semigroup.Internal | |
newtype Any Исходный код
Булевый моноид по дизъюнкции (||).
Any x <> Any y = Any (x || y)
Примеры
>>> Any True <> mempty <> Any False
Any {getAny = True}
>>> mconcat (map (\x -> Any (even x)) [2,4,6,7,8])
Any {getAny = True}
>>> Any False <> mempty
Any {getAny = False}
Экземпляры
| Monoid Any Источник | С версии: base-2.1 |
| Semigroup Any Источник | С версии: base-4.9.0.0 |
| Data Any Источник | С версии: base-4.8.0.0 |
Определено в GHC.Internal.Data.Data Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Any -> c Any Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Any Источник toConstr :: Any -> Constr Источник dataTypeOf :: Any -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Any) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Any) Источник gmapT :: (forall b. Data b => b -> b) -> Any -> Any Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Any -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Any -> r Источник gmapQ :: (forall d. Data d => d -> u) -> Any -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> Any -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> Any -> m Any Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Any -> m Any Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Any -> m Any Источник | |
| Bounded Any Источник | С версии: base-2.1 |
Определено в GHC.Internal.Data.Semigroup.Internal | |||||
| Generic Any Исходный код | |||||
Определено в GHC.Internal.Data.Semigroup.Internal Связанные типы
| |||||
| Read Any Исходный код | С момента: base-2.1 |
||||
Определено в GHC.Internal.Data.Semigroup.Internal МетодыreadsPrec :: Int -> ReadS Any Исходный код readList :: ReadS [Any] Исходный код | |||||
| Show Any Исходный код | С момента: base-2.1 |
||||
Определено в GHC.Internal.Data.Semigroup.Internal МетодыshowsPrec :: Int -> Any -> ShowS Исходный код show :: Any -> String Исходный код showList :: [Any] -> ShowS Исходный код | |||||
| Eq Any Исходный код | С момента: base-2.1 |
||||
Определено в GHC.Internal.Data.Semigroup.Internal | |||||
| Ord Any Исходный код | С момента: base-2.1 |
||||
Определено в GHC.Internal.Data.Semigroup.Internal Методыcompare :: Any -> Any -> Ordering Исходный код (<) :: Any -> Any -> Bool Исходный код (<=) :: Any -> Any -> Bool Исходный код (>) :: Any -> Any -> Bool Исходный код (>=) :: Any -> Any -> Bool Исходный код max :: Any -> Any -> Any Исходный код min :: Any -> Any -> Any Исходный код | |
| type Rep Any Исходный код | С тех пор как: base-4.7.0.0 |
Определено в GHC.Internal.Data.Semigroup.Internal | |
Обертки Num
newtype Sum a Исходный код
Моноид по сложению.
Sum a <> Sum b = Sum (a + b)
Примеры
>>> Sum 1 <> Sum 2 <> mempty
Sum {getSum = 3}
>>> mconcat [ Sum n | n <- [3 .. 9]]
Sum {getSum = 42}
Экземпляры
| Foldable1 Sum Источник | С момента: base-4.18.0.0 |
Определено в Data.Foldable1 Методыfold1 :: Semigroup m => Sum m -> m Источник foldMap1 :: Semigroup m => (a -> m) -> Sum a -> m Источник foldMap1' :: Semigroup m => (a -> m) -> Sum a -> m Источник toNonEmpty :: Sum a -> NonEmpty a Источник maximum :: Ord a => Sum a -> a Источник minimum :: Ord a => Sum a -> a Источник foldrMap1 :: (a -> b) -> (a -> b -> b) -> Sum a -> b Источник foldlMap1' :: (a -> b) -> (b -> a -> b) -> Sum a -> b Источник foldlMap1 :: (a -> b) -> (b -> a -> b) -> Sum a -> b Источник foldrMap1' :: (a -> b) -> (a -> b -> b) -> Sum a -> b Источник | |
| Applicative Sum Источник | С момента: base-4.8.0.0 |
| Functor Sum Источник | С момента: base-4.8.0.0 |
| Monad Sum Источник | С момента: base-4.8.0.0 |
| MonadFix Sum Источник | С момента: base-4.8.0.0 |
Определено в GHC.Internal.Control.Monad.Fix | |
| MonadZip Sum Source | Since: ghc-internal-4.8.0.0 |
| Foldable Sum Source | Since: base-4.8.0.0 |
Defined in GHC.Internal.Data.Foldable Methodsfold :: Monoid m => Sum m -> m Source foldMap :: Monoid m => (a -> m) -> Sum a -> m Source foldMap' :: Monoid m => (a -> m) -> Sum a -> m Source foldr :: (a -> b -> b) -> b -> Sum a -> b Source foldr' :: (a -> b -> b) -> b -> Sum a -> b Source foldl :: (b -> a -> b) -> b -> Sum a -> b Source foldl' :: (b -> a -> b) -> b -> Sum a -> b Source foldr1 :: (a -> a -> a) -> Sum a -> a Source foldl1 :: (a -> a -> a) -> Sum a -> a Source elem :: Eq a => a -> Sum a -> Bool Source maximum :: Ord a => Sum a -> a Source minimum :: Ord a => Sum a -> a Source | |
| Traversable Sum Source | Since: base-4.8.0.0 |
| Generic1 Sum Source | |
Определено в GHC.Internal.Data.Semigroup.Internal Связанные типы
| |||||
| Num a => Monoid (Sum a) Исходный код | С момента: base-2.1 |
||||
Определено в GHC.Internal.Data.Semigroup.Internal Методыmempty :: Sum a Исходный код mappend :: Sum a -> Sum a -> Sum a Исходный код mconcat :: [Sum a] -> Sum a Исходный код | |||||
| Num a => Semigroup (Sum a) Исходный код | С момента: base-4.9.0.0 |
||||
Определено в GHC.Internal.Data.Semigroup.Internal Методы(<>) :: Sum a -> Sum a -> Sum a Исходный код sconcat :: NonEmpty (Sum a) -> Sum a Исходный код stimes :: Integral b => b -> Sum a -> Sum a Исходный код | |||||
| Data a => Data (Sum a) Исходный код | С момента: base-4.8.0.0 |
||||
Определено в GHC.Internal.Data.Data Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Sum a -> c (Sum a) Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Sum a) Исходный код toConstr :: Sum a -> Constr Исходный код dataTypeOf :: Sum a -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Sum a)) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Sum a)) Исходный код gmapT :: (forall b. Data b => b -> b) -> Sum a -> Sum a Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Sum a -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Sum a -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> Sum a -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> Sum a -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> Sum a -> m (Sum a) Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Sum a -> m (Sum a) Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Sum a -> m (Sum a) Исходный код | |||||
| Bounded a => Bounded (Sum a) Исходный код | С момента: base-2.1 |
||||
Определено в GHC.Internal.Data.Semigroup.Internal | |||||
| Generic (Sum a) Исходный код | |||||
Определено в GHC.Internal.Data.Semigroup.Internal Связанные типы
| |||||
Определено в GHC.Internal.Data.Semigroup.Internal Методыcompare :: Sum a -> Sum a -> Ordering Исходный код (<) :: Sum a -> Sum a -> Bool Исходный код (<=) :: Sum a -> Sum a -> Bool Исходный код (>) :: Sum a -> Sum a -> Bool Исходный код (>=) :: Sum a -> Sum a -> Bool Исходный код max :: Sum a -> Sum a -> Sum a Исходный код min :: Sum a -> Sum a -> Sum a Исходный код | |
| type Rep1 Sum Исходный код | С момента: base-4.7.0.0 |
Определено в GHC.Internal.Data.Semigroup.Internal | |
| type Rep (Sum a) Исходный код | С момента: base-4.7.0.0 |
Определено в GHC.Internal.Data.Semigroup.Internal | |
newtype Product a Исходный код
Моноид по умножению.
Product x <> Product y == Product (x * y)
Примеры
>>> Product 3 <> Product 4 <> mempty
Product {getProduct = 12}
>>> mconcat [ Product n | n <- [2 .. 10]]
Product {getProduct = 3628800}
Конструкторы
| Product | |
Поля
| |
Примеры использования
Определено в GHC.Internal.Control.Monad.Fix | |
| MonadZip Product Source | Since: ghc-internal-4.8.0.0 |
| Foldable Product Source | Since: base-4.8.0.0 |
Определено в GHC.Internal.Data.Foldable Методыfold :: Monoid m => Product m -> m Source foldMap :: Monoid m => (a -> m) -> Product a -> m Source foldMap' :: Monoid m => (a -> m) -> Product a -> m Source foldr :: (a -> b -> b) -> b -> Product a -> b Source foldr' :: (a -> b -> b) -> b -> Product a -> b Source foldl :: (b -> a -> b) -> b -> Product a -> b Source foldl' :: (b -> a -> b) -> b -> Product a -> b Source foldr1 :: (a -> a -> a) -> Product a -> a Source foldl1 :: (a -> a -> a) -> Product a -> a Source toList :: Product a -> [a] Source null :: Product a -> Bool Source length :: Product a -> Int Source elem :: Eq a => a -> Product a -> Bool Source maximum :: Ord a => Product a -> a Source minimum :: Ord a => Product a -> a Source | |
| Traversable Product Source | Since: base-4.8.0.0 |
Определено в GHC.Internal.Data.Data Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Product a -> c (Product a) Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Product a) Исходный код toConstr :: Product a -> Constr Исходный код dataTypeOf :: Product a -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Product a)) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Product a)) Исходный код gmapT :: (forall b. Data b => b -> b) -> Product a -> Product a Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Product a -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Product a -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> Product a -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> Product a -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> Product a -> m (Product a) Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Product a -> m (Product a) Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Product a -> m (Product a) Исходный код | |||||
| Bounded a => Bounded (Product a) Исходный код | С момента: base-2.1 |
||||
Определено в GHC.Internal.Data.Semigroup.Internal | |||||
| Generic (Product a) Исходный код | |||||
Определено в GHC.Internal.Data.Semigroup.Internal Связанные типы
Методыfrom :: Product a -> Rep (Product a) x Исходный код to :: Rep (Product a) x -> Product a Исходный код | |||||
| Num a => Num (Product a) Source | С момента: base-4.7.0.0 |
Определено в GHC.Internal.Data.Semigroup.Internal Методы(+) :: Product a -> Product a -> Product a Source (-) :: Product a -> Product a -> Product a Source (*) :: Product a -> Product a -> Product a Source negate :: Product a -> Product a Source abs :: Product a -> Product a Source signum :: Product a -> Product a Source fromInteger :: Integer -> Product a Source | |
| Read a => Read (Product a) Source | С момента: base-2.1 |
| Show a => Show (Product a) Source | С момента: base-2.1 |
| Eq a => Eq (Product a) Source | С момента: base-2.1 |
| Ord a => Ord (Product a) Source | С момента: base-2.1 |
Определено в GHC.Internal.Data.Semigroup.Internal Методыcompare :: Product a -> Product a -> Ordering Исходный код (<) :: Product a -> Product a -> Bool Исходный код (<=) :: Product a -> Product a -> Bool Исходный код (>) :: Product a -> Product a -> Bool Исходный код (>=) :: Product a -> Product a -> Bool Исходный код max :: Product a -> Product a -> Product a Исходный код min :: Product a -> Product a -> Product a Исходный код | |
| type Rep1 Product Исходный код | С версии: base-4.7.0.0 |
Определено в GHC.Internal.Data.Semigroup.Internal | |
| type Rep (Product a) Исходный код | С версии: base-4.7.0.0 |
Определено в GHC.Internal.Data.Semigroup.Internal | |
Обёртки Maybe
newtype First a Исходный код
Моноид Maybe, возвращающий левое значение, отличное от Nothing.
First a изоморфен Alt Maybe a, но исторически ему предшествует.
Обратите внимание, что Data.Monoid.First отличается от Data.Semigroup.First. Первый возвращает первое значение, отличное от Nothing, поэтому Data.Monoid.First Nothing <> x = x. Последний просто возвращает первое значение, таким образом Data.Semigroup.First Nothing <> x = Data.Semigroup.First Nothing.
Примеры
>>> First (Just "hello") <> First Nothing <> First (Just "world")
First {getFirst = Just "hello"}
>>> First Nothing <> mempty
First {getFirst = Nothing}
Примеры реализации
| Applicative First Исходный код | С момента: base-4.8.0.0 |
Определено в GHC.Internal.Data.Monoid Методыpure :: a -> First a Исходный код (<*>) :: First (a -> b) -> First a -> First b Исходный код liftA2 :: (a -> b -> c) -> First a -> First b -> First c Исходный код (*>) :: First a -> First b -> First b Исходный код (<*) :: First a -> First b -> First a Исходный код | |
| Functor First Исходный код | С момента: base-4.8.0.0 |
Определено в GHC.Internal.Data.Monoid Методыfmap :: (a -> b) -> First a -> First b Исходный код (<$) :: a -> First b -> First a Исходный код | |
| Monad First Исходный код | С момента: base-4.8.0.0 |
Определено в GHC.Internal.Data.Monoid Методы(>>=) :: First a -> (a -> First b) -> First b Исходный код (>>) :: First a -> First b -> First b Исходный код return :: a -> First a Исходный код | |
| MonadFix First Исходный код | С момента: base-4.8.0.0 |
Определено в GHC.Internal.Control.Monad.Fix Методыmfix :: (a -> First a) -> First a Исходный код | |
| MonadZip First Исходный код | С момента: ghc-internal-4.8.0.0 |
Определено в GHC.Internal.Control.Monad.Zip Методыmzip :: First a -> First b -> First (a, b) Исходный код mzipWith :: (a -> b -> c) -> First a -> First b -> First c Исходный код munzip :: First (a, b) -> (First a, First b) Исходный код | |
| Foldable First Исходный код | С момента: base-4.8.0.0 |
Определено в GHC.Internal.Data.Foldable Методыfold :: Monoid m => First m -> m Исходный код foldMap :: Monoid m => (a -> m) -> First a -> m Исходный код foldMap' :: Monoid m => (a -> m) -> First a -> m Исходный код foldr :: (a -> b -> b) -> b -> First a -> b Исходный код foldr' :: (a -> b -> b) -> b -> First a -> b Исходный код foldl :: (b -> a -> b) -> b -> First a -> b Исходный код foldl' :: (b -> a -> b) -> b -> First a -> b Исходный код foldr1 :: (a -> a -> a) -> First a -> a Исходный код foldl1 :: (a -> a -> a) -> First a -> a Исходный код toList :: First a -> [a] Исходный код null :: First a -> Bool Исходный код length :: First a -> Int Исходный код elem :: Eq a => a -> First a -> Bool Исходный код maximum :: Ord a => First a -> a Исходный код minimum :: Ord a => First a -> a Исходный код sum :: Num a => First a -> a Исходный код product :: Num a => First a -> a Исходный код | |
| Traversable First Исходный код | С момента: base-4.8.0.0 |
Определено в GHC.Internal.Data.Traversable Методыtraverse :: Applicative f => (a -> f b) -> First a -> f (First b) Исходный код sequenceA :: Applicative f => First (f a) -> f (First a) Исходный код mapM :: Monad m => (a -> m b) -> First a -> m (First b) Исходный код sequence :: Monad m => First (m a) -> m (First a) Исходный код | |
| Generic1 First Исходный код | |
Определено в GHC.Internal.Data.Monoid Связанные типы
| |||||
| Monoid (First a) Исходный код | С тех пор: base-2.1 |
||||
Определено в GHC.Internal.Data.Monoid Методыmempty :: First a Исходный код mappend :: First a -> First a -> First a Исходный код mconcat :: [First a] -> First a Исходный код | |||||
| Semigroup (First a) Исходный код | С тех пор: base-4.9.0.0 |
||||
Определено в GHC.Internal.Data.Monoid Методы(<>) :: First a -> First a -> First a Исходный код sconcat :: NonEmpty (First a) -> First a Исходный код stimes :: Integral b => b -> First a -> First a Исходный код | |||||
| Data a => Data (First a) Исходный код | С тех пор: base-4.8.0.0 |
||||
Определено в GHC.Internal.Data.Data Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> First a -> c (First a) Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (First a) Исходный код toConstr :: First a -> Constr Исходный код dataTypeOf :: First a -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (First a)) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (First a)) Исходный код gmapT :: (forall b. Data b => b -> b) -> First a -> First a Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> First a -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> First a -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> First a -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> First a -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> First a -> m (First a) Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> First a -> m (First a) Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> First a -> m (First a) Исходный код | |||||
| Generic (First a) Исходный код | |||||
Определено в GHC.Internal.Data.Monoid Связанные типы
Методыfrom :: First a -> Rep (First a) x Исходный код to :: Rep (First a) x -> First a Исходный код | |||||
| Read a => Read (First a) Исходный код | С момента: base-2.1 |
||||
Определено в GHC.Internal.Data.Monoid МетодыreadsPrec :: Int -> ReadS (First a) Исходный код readList :: ReadS [First a] Исходный код readPrec :: ReadPrec (First a) Исходный код readListPrec :: ReadPrec [First a] Исходный код | |
| Show a => Show (First a) Исходный код | С момента: base-2.1 |
Определено в GHC.Internal.Data.Monoid МетодыshowsPrec :: Int -> First a -> ShowS Исходный код show :: First a -> String Исходный код showList :: [First a] -> ShowS Исходный код | |
| Eq a => Eq (First a) Исходный код | С момента: base-2.1 |
Определено в GHC.Internal.Data.Monoid Методы(==) :: First a -> First a -> Bool Исходный код (/=) :: First a -> First a -> Bool Исходный код | |
| Ord a => Ord (First a) Исходный код | С момента: base-2.1 |
Определено в GHC.Internal.Data.Monoid Методыcompare :: First a -> First a -> Ordering Исходный код (<) :: First a -> First a -> Bool Исходный код (<=) :: First a -> First a -> Bool Исходный код (>) :: First a -> First a -> Bool Исходный код (>=) :: First a -> First a -> Bool Исходный код max :: First a -> First a -> First a Исходный код min :: First a -> First a -> First a Исходный код | |
| type Rep1 First Исходный код | С момента: base-4.7.0.0 |
Определено в GHC.Internal.Data.Monoid | |
| type Rep (First a) Исходный код | С момента: base-4.7.0.0 |
Определено в GHC.Internal.Data.Monoid |
Моноид Maybe, возвращающий самое правое не-Nothing значение.
Last a изоморфен Dual (First a), а значит и Dual (Alt Maybe a).
Data.Semigroup.Last. Первый возвращает последнее не-Nothing значение, поэтому x <> Data.Monoid.Last Nothing = x. Последний просто возвращает последнее значение, следовательно x <> Data.Semigroup.Last Nothing = Data.Semigroup.Last Nothing.
Примеры
>>> Last (Just "hello") <> Last Nothing <> Last (Just "world")
Last {getLast = Just "world"}
>>> Last Nothing <> mempty
Last {getLast = Nothing}
Примеры использования
| Applicative Last Исходный код | С момента: base-4.8.0.0 |
Определено в GHC.Internal.Data.Monoid Методыpure :: a -> Last a Исходный код (<*>) :: Last (a -> b) -> Last a -> Last b Исходный код liftA2 :: (a -> b -> c) -> Last a -> Last b -> Last c Исходный код (*>) :: Last a -> Last b -> Last b Исходный код (<*) :: Last a -> Last b -> Last a Исходный код | |
| Functor Last Исходный код | С момента: base-4.8.0.0 |
Определено в GHC.Internal.Data.Monoid | |
| Monad Last Исходный код | С момента: base-4.8.0.0 |
Определено в GHC.Internal.Data.Monoid Методы(>>=) :: Last a -> (a -> Last b) -> Last b Исходный код (>>) :: Last a -> Last b -> Last b Исходный код return :: a -> Last a Исходный код | |
| MonadFix Last Исходный код | С момента: base-4.8.0.0 |
Определено в GHC.Internal.Control.Monad.Fix Методыmfix :: (a -> Last a) -> Last a Исходный код | |
| MonadZip Last Исходный код | С момента: ghc-internal-4.8.0.0 |
Определено в GHC.Internal.Control.Monad.Zip Методыmzip :: Last a -> Last b -> Last (a, b) Исходный код mzipWith :: (a -> b -> c) -> Last a -> Last b -> Last c Исходный код munzip :: Last (a, b) -> (Last a, Last b) Исходный код | |
| Foldable Last Исходный код | С момента: base-4.8.0.0 |
Определено в GHC.Internal.Data.Foldable Методыfold :: Monoid m => Last m -> m Источник foldMap :: Monoid m => (a -> m) -> Last a -> m Источник foldMap' :: Monoid m => (a -> m) -> Last a -> m Источник foldr :: (a -> b -> b) -> b -> Last a -> b Источник foldr' :: (a -> b -> b) -> b -> Last a -> b Источник foldl :: (b -> a -> b) -> b -> Last a -> b Источник foldl' :: (b -> a -> b) -> b -> Last a -> b Источник foldr1 :: (a -> a -> a) -> Last a -> a Источник foldl1 :: (a -> a -> a) -> Last a -> a Источник toList :: Last a -> [a] Источник null :: Last a -> Bool Источник length :: Last a -> Int Источник elem :: Eq a => a -> Last a -> Bool Источник maximum :: Ord a => Last a -> a Источник minimum :: Ord a => Last a -> a Источник | |
| Traversable Last Источник | С тех пор как: base-4.8.0.0 |
Определено в GHC.Internal.Data.Traversable | |
| Generic1 Last Источник | |
Определено в GHC.Internal.Data.Monoid Связанные типы
| |||||
| Monoid (Last a) Исходный код | С версии: base-2.1 |
||||
Определено в GHC.Internal.Data.Monoid Методыmempty :: Last a Исходный код mappend :: Last a -> Last a -> Last a Исходный код mconcat :: [Last a] -> Last a Исходный код | |||||
| Semigroup (Last a) Исходный код | С версии: base-4.9.0.0 |
||||
Определено в GHC.Internal.Data.Monoid Методы(<>) :: Last a -> Last a -> Last a Исходный код sconcat :: NonEmpty (Last a) -> Last a Исходный код stimes :: Integral b => b -> Last a -> Last a Исходный код | |||||
| Data a => Data (Last a) Исходный код | С версии: base-4.8.0.0 |
||||
Определено в GHC.Internal.Data.Data Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Last a -> c (Last a) Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Last a) Исходный код toConstr :: Last a -> Constr Исходный код dataTypeOf :: Last a -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Last a)) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Last a)) Исходный код gmapT :: (forall b. Data b => b -> b) -> Last a -> Last a Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Last a -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Last a -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> Last a -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> Last a -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> Last a -> m (Last a) Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Last a -> m (Last a) Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Last a -> m (Last a) Исходный код | |||||
| Generic (Last a) Исходный код | |||||
Определено в GHC.Internal.Data.Monoid Связанные типы
| |||||
| Read a => Read (Last a) Исходный код | С момента: base-2.1 |
||||
Определено в GHC.Internal.Data.Monoid МетодыreadsPrec :: Int -> ReadS (Last a) Исходный код readList :: ReadS [Last a] Исходный код readPrec :: ReadPrec (Last a) Исходный код readListPrec :: ReadPrec [Last a] Исходный код | |
| Show a => Show (Last a) Исходный код | С момента: base-2.1 |
Определено в GHC.Internal.Data.Monoid МетодыshowsPrec :: Int -> Last a -> ShowS Исходный код show :: Last a -> String Исходный код showList :: [Last a] -> ShowS Исходный код | |
| Eq a => Eq (Last a) Исходный код | С момента: base-2.1 |
Определено в GHC.Internal.Data.Monoid | |
| Ord a => Ord (Last a) Исходный код | С момента: base-2.1 |
Определено в GHC.Internal.Data.Monoid Методыcompare :: Last a -> Last a -> Ordering Исходный код (<) :: Last a -> Last a -> Bool Исходный код (<=) :: Last a -> Last a -> Bool Исходный код (>) :: Last a -> Last a -> Bool Исходный код (>=) :: Last a -> Last a -> Bool Исходный код max :: Last a -> Last a -> Last a Исходный код min :: Last a -> Last a -> Last a Исходный код | |
| type Rep1 Last Исходный код | С момента: base-4.7.0.0 |
Определено в GHC.Internal.Data.Monoid | |
| type Rep (Last a) Исходный код | С момента: base-4.7.0.0 |
Определено в GHC.Internal.Data.Monoid |
Альтернативная оболочка
newtype Alt (f :: k -> Type) (a :: k) Источник
Моноид по <|>.
Alt l <> Alt r == Alt (l <|> r)
Примеры
>>> Alt (Just 12) <> Alt (Just 24)
Alt {getAlt = Just 12}
>>> Alt Nothing <> Alt (Just 24)
Alt {getAlt = Just 24}
С тех пор как: base-4.8.0.0
Экземпляры
| Generic1 (Alt f :: k -> Type) Источник | |||||
Определено в GHC.Internal.Data.Semigroup.Internal Связанные типы
| |||||
| Foldable1 f => Foldable1 (Alt f) Источник | С версии: base-4.18.0.0 |
||||
Определено в Data.Foldable1 Методыfold1 :: Semigroup m => Alt f m -> m Источник foldMap1 :: Semigroup m => (a -> m) -> Alt f a -> m Источник foldMap1' :: Semigroup m => (a -> m) -> Alt f a -> m Источник toNonEmpty :: Alt f a -> NonEmpty a Источник maximum :: Ord a => Alt f a -> a Источник minimum :: Ord a => Alt f a -> a Источник foldrMap1 :: (a -> b) -> (a -> b -> b) -> Alt f a -> b Источник foldlMap1' :: (a -> b) -> (b -> a -> b) -> Alt f a -> b Источник foldlMap1 :: (a -> b) -> (b -> a -> b) -> Alt f a -> b Источник foldrMap1' :: (a -> b) -> (a -> b -> b) -> Alt f a -> b Источник | |||||
| Contravariant f => Contravariant (Alt f) Источник | |||||
| Alternative f => Alternative (Alt f) Источник | С версии: base-4.8.0.0 |
||||
| Applicative f => Applicative (Alt f) Source | Since: base-4.8.0.0 |
| Functor f => Functor (Alt f) Source | Since: base-4.8.0.0 |
| Monad f => Monad (Alt f) Source | Since: base-4.8.0.0 |
| MonadPlus f => MonadPlus (Alt f) Source | Since: base-4.8.0.0 |
| MonadFix f => MonadFix (Alt f) Source | Since: base-4.8.0.0 |
Определено в GHC.Internal.Control.Monad.Fix | |
| MonadZip f => MonadZip (Alt f) Source | Since: ghc-internal-4.8.0.0 |
| Foldable f => Foldable (Alt f) Source | Since: base-4.12.0.0 |
Определено в GHC.Internal.Data.Foldable Краткое описание методовfold :: Monoid m => Alt f m -> m Source foldMap :: Monoid m => (a -> m) -> Alt f a -> m Source foldMap' :: Monoid m => (a -> m) -> Alt f a -> m Source foldr :: (a -> b -> b) -> b -> Alt f a -> b Source foldr' :: (a -> b -> b) -> b -> Alt f a -> b Source foldl :: (b -> a -> b) -> b -> Alt f a -> b Source foldl' :: (b -> a -> b) -> b -> Alt f a -> b Source foldr1 :: (a -> a -> a) -> Alt f a -> a Source foldl1 :: (a -> a -> a) -> Alt f a -> a Source toList :: Alt f a -> [a] Source null :: Alt f a -> Bool Source length :: Alt f a -> Int Source elem :: Eq a => a -> Alt f a -> Bool Source maximum :: Ord a => Alt f a -> a Source minimum :: Ord a => Alt f a -> a Source | |
| Traversable f => Traversable (Alt f) Source | Since: base-4.12.0.0 |
Определено в GHC.Internal.Data.Traversable | |
| Alternative f => Monoid (Alt f a) Source | Since: base-4.8.0.0 |
| Alternative f => Semigroup (Alt f a) Source | Since: base-4.9.0.0 |
| (Data (f a), Data a, Typeable f) => Data (Alt f a) Source | Since: base-4.8.0.0 |
Defined in GHC.Internal.Data.Data Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Alt f a -> c (Alt f a) Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Alt f a) Source toConstr :: Alt f a -> Constr Source dataTypeOf :: Alt f a -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Alt f a)) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Alt f a)) Source gmapT :: (forall b. Data b => b -> b) -> Alt f a -> Alt f a Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Alt f a -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Alt f a -> r Source gmapQ :: (forall d. Data d => d -> u) -> Alt f a -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> Alt f a -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> Alt f a -> m (Alt f a) Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Alt f a -> m (Alt f a) Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Alt f a -> m (Alt f a) Source | |
| Enum (f a) => Enum (Alt f a) Source | Since: base-4.8.0.0 |
Определено в GHC.Internal.Data.Semigroup.Internal Методыsucc :: Alt f a -> Alt f a Исходный код pred :: Alt f a -> Alt f a Исходный код toEnum :: Int -> Alt f a Исходный код fromEnum :: Alt f a -> Int Исходный код enumFrom :: Alt f a -> [Alt f a] Исходный код enumFromThen :: Alt f a -> Alt f a -> [Alt f a] Исходный код enumFromTo :: Alt f a -> Alt f a -> [Alt f a] Исходный код enumFromThenTo :: Alt f a -> Alt f a -> Alt f a -> [Alt f a] Исходный код | |||||
| Generic (Alt f a) Исходный код | |||||
Определено в GHC.Internal.Data.Semigroup.Internal Связанные типы
Методыfrom :: Alt f a -> Rep (Alt f a) x Исходный код to :: Rep (Alt f a) x -> Alt f a Исходный код | |||||
| Num (f a) => Num (Alt f a) Исходный код | С версии: base-4.8.0.0 |
||||
Определено в GHC.Internal.Data.Semigroup.Internal Методы(+) :: Alt f a -> Alt f a -> Alt f a Исходный код (-) :: Alt f a -> Alt f a -> Alt f a Исходный код (*) :: Alt f a -> Alt f a -> Alt f a Исходный код negate :: Alt f a -> Alt f a Исходный код abs :: Alt f a -> Alt f a Исходный код signum :: Alt f a -> Alt f a Исходный код fromInteger :: Integer -> Alt f a Исходный код | |||||
| Read (f a) => Read (Alt f a) Исходный код | С версии: base-4.8.0.0 |
||||
Определено в GHC.Internal.Data.Semigroup.Internal МетодыreadsPrec :: Int -> ReadS (Alt f a) Исходный код readList :: ReadS [Alt f a] Исходный код readPrec :: ReadPrec (Alt f a) Исходный код readListPrec :: ReadPrec [Alt f a] Исходный код | |
| Show (f a) => Show (Alt f a) Исходный код | С версии: base-4.8.0.0 |
Определено в GHC.Internal.Data.Semigroup.Internal МетодыshowsPrec :: Int -> Alt f a -> ShowS Исходный код show :: Alt f a -> String Исходный код showList :: [Alt f a] -> ShowS Исходный код | |
| Eq (f a) => Eq (Alt f a) Исходный код | С версии: base-4.8.0.0 |
Определено в GHC.Internal.Data.Semigroup.Internal Методы(==) :: Alt f a -> Alt f a -> Bool Исходный код (/=) :: Alt f a -> Alt f a -> Bool Исходный код | |
| Ord (f a) => Ord (Alt f a) Исходный код | С версии: base-4.8.0.0 |
Определено в GHC.Internal.Data.Semigroup.Internal Методыcompare :: Alt f a -> Alt f a -> Ordering Исходный код (<) :: Alt f a -> Alt f a -> Bool Исходный код (<=) :: Alt f a -> Alt f a -> Bool Исходный код (>) :: Alt f a -> Alt f a -> Bool Исходный код (>=) :: Alt f a -> Alt f a -> Bool Исходный код max :: Alt f a -> Alt f a -> Alt f a Исходный код min :: Alt f a -> Alt f a -> Alt f a Исходный код | |
| type Rep1 (Alt f :: k -> Type) Исходный код | С версии: base-4.8.0.0 |
Определено в GHC.Internal.Data.Semigroup.Internal | |
| type Rep (Alt f a) Исходный код | С версии: base-4.8.0.0 |
Определено в GHC.Internal.Data.Semigroup.Internal |
Обертка Applicative
newtype Ap (f :: k -> Type) (a :: k) Source
Этот тип данных свидетельствует о подъёме Monoid в точку Applicative покомпонентно.
Примеры
>>> Ap (Just [1, 2, 3]) <> Ap Nothing
Ap {getAp = Nothing}
>>> Ap [Sum 10, Sum 20] <> Ap [Sum 1, Sum 2]
Ap {getAp = [Sum {getSum = 11},Sum {getSum = 12},Sum {getSum = 21},Sum {getSum = 22}]}
С: base-4.12.0.0
Экземпляры
| Generic1 (Ap f :: k -> Type) Источник | |||||
Определено в GHC.Internal.Data.Monoid Связанные типы
| |||||
| Foldable1 f => Foldable1 (Ap f) Источник | С версии: base-4.18.0.0 |
||||
Определено в Data.Foldable1 Методыfold1 :: Semigroup m => Ap f m -> m Источник foldMap1 :: Semigroup m => (a -> m) -> Ap f a -> m Источник foldMap1' :: Semigroup m => (a -> m) -> Ap f a -> m Источник toNonEmpty :: Ap f a -> NonEmpty a Источник maximum :: Ord a => Ap f a -> a Источник minimum :: Ord a => Ap f a -> a Источник foldrMap1 :: (a -> b) -> (a -> b -> b) -> Ap f a -> b Источник foldlMap1' :: (a -> b) -> (b -> a -> b) -> Ap f a -> b Источник foldlMap1 :: (a -> b) -> (b -> a -> b) -> Ap f a -> b Источник foldrMap1' :: (a -> b) -> (a -> b -> b) -> Ap f a -> b Источник | |||||
| Alternative f => Alternative (Ap f) Источник | С версии: base-4.12.0.0 |
||||
| Applicative f => Applicative (Ap f) Источник | С версии: base-4.12.0.0 |
||||
Определено в GHC.Internal.Data.Monoid Методыpure :: a -> Ap f a Исходный код (<*>) :: Ap f (a -> b) -> Ap f a -> Ap f b Исходный код liftA2 :: (a -> b -> c) -> Ap f a -> Ap f b -> Ap f c Исходный код (*>) :: Ap f a -> Ap f b -> Ap f b Исходный код (<*) :: Ap f a -> Ap f b -> Ap f a Исходный код | |
| Functor f => Functor (Ap f) Исходный код | С: base-4.12.0.0 |
Определено в GHC.Internal.Data.Monoid | |
| Monad f => Monad (Ap f) Исходный код | С: base-4.12.0.0 |
Определено в GHC.Internal.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 Исходный код | |
| MonadPlus f => MonadPlus (Ap f) Исходный код | С: base-4.12.0.0 |
Определено в GHC.Internal.Data.Monoid | |
| MonadFail f => MonadFail (Ap f) Исходный код | С: base-4.12.0.0 |
Определено в GHC.Internal.Data.Monoid Методыfail :: String -> Ap f a Исходный код | |
| MonadFix f => MonadFix (Ap f) Исходный код | С: base-4.12.0.0 |
Определено в GHC.Internal.Control.Monad.Fix Методыmfix :: (a -> Ap f a) -> Ap f a Исходный код | |
| Foldable f => Foldable (Ap f) Исходный код | С: base-4.12.0.0 |
Определено в GHC.Internal.Data.Foldable Методыfold :: Monoid m => Ap f m -> m Исходный код foldMap :: Monoid m => (a -> m) -> Ap f a -> m Исходный код foldMap' :: Monoid m => (a -> m) -> Ap f a -> m Исходный код foldr :: (a -> b -> b) -> b -> Ap f a -> b Исходный код foldr' :: (a -> b -> b) -> b -> Ap f a -> b Исходный код foldl :: (b -> a -> b) -> b -> Ap f a -> b Исходный код foldl' :: (b -> a -> b) -> b -> Ap f a -> b Исходный код foldr1 :: (a -> a -> a) -> Ap f a -> a Исходный код foldl1 :: (a -> a -> a) -> Ap f a -> a Исходный код toList :: Ap f a -> [a] Исходный код null :: Ap f a -> Bool Исходный код length :: Ap f a -> Int Исходный код elem :: Eq a => a -> Ap f a -> Bool Исходный код maximum :: Ord a => Ap f a -> a Исходный код minimum :: Ord a => Ap f a -> a Исходный код sum :: Num a => Ap f a -> a Исходный код product :: Num a => Ap f a -> a Исходный код | |
| Traversable f => Traversable (Ap f) Исходный код | С момента: base-4.12.0.0 |
Определено в GHC.Internal.Data.Traversable Методыtraverse :: Applicative f0 => (a -> f0 b) -> Ap f a -> f0 (Ap f b) Исходный код sequenceA :: Applicative f0 => Ap f (f0 a) -> f0 (Ap f a) Исходный код mapM :: Monad m => (a -> m b) -> Ap f a -> m (Ap f b) Исходный код sequence :: Monad m => Ap f (m a) -> m (Ap f a) Исходный код | |
| (Applicative f, Monoid a) => Monoid (Ap f a) Исходный код | С момента: base-4.12.0.0 |
Определено в GHC.Internal.Data.Monoid Методыmempty :: Ap f a Исходный код mappend :: Ap f a -> Ap f a -> Ap f a Исходный код mconcat :: [Ap f a] -> Ap f a Исходный код | |
| (Applicative f, Semigroup a) => Semigroup (Ap f a) Исходный код | С момента: base-4.12.0.0 |
Определено в GHC.Internal.Data.Monoid Краткое описание методов(<>) :: Ap f a -> Ap f a -> Ap f a Исходный код sconcat :: NonEmpty (Ap f a) -> Ap f a Исходный код stimes :: Integral b => b -> Ap f a -> Ap f a Исходный код | |
| (Data (f a), Data a, Typeable f) => Data (Ap f a) Исходный код | С версии: base-4.12.0.0 |
Определено в GHC.Internal.Data.Data Краткое описание методовgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Ap f a -> c (Ap f a) Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Ap f a) Исходный код toConstr :: Ap f a -> Constr Исходный код dataTypeOf :: Ap f a -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Ap f a)) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Ap f a)) Исходный код gmapT :: (forall b. Data b => b -> b) -> Ap f a -> Ap f a Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Ap f a -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Ap f a -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> Ap f a -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> Ap f a -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> Ap f a -> m (Ap f a) Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Ap f a -> m (Ap f a) Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Ap f a -> m (Ap f a) Исходный код | |
| (Applicative f, Bounded a) => Bounded (Ap f a) Исходный код | С версии: base-4.12.0.0 |
Определено в GHC.Internal.Data.Monoid | |
| Enum (f a) => Enum (Ap f a) Исходный код | С версии: base-4.12.0.0 |
Определено в GHC.Internal.Data.Monoid Методыsucc :: Ap f a -> Ap f a Источник pred :: Ap f a -> Ap f a Источник toEnum :: Int -> Ap f a Источник fromEnum :: Ap f a -> Int Источник enumFrom :: Ap f a -> [Ap f a] Источник enumFromThen :: Ap f a -> Ap f a -> [Ap f a] Источник enumFromTo :: Ap f a -> Ap f a -> [Ap f a] Источник enumFromThenTo :: Ap f a -> Ap f a -> Ap f a -> [Ap f a] Источник | |||||
| Generic (Ap f a) Источник | |||||
Определено в GHC.Internal.Data.Monoid Связанные типы
| |||||
| (Applicative f, Num a) => Num (Ap f a) Источник |
Обратите внимание, что даже если базовые Коммутативность: >>> Ap [10,20] + Ap [1,2]
Ap {getAp = [11,12,21,22]}
>>> Ap [1,2] + Ap [10,20]
Ap {getAp = [11,21,12,22]}
Обратный элемент: >>> Ap [] + negate (Ap [])
Ap {getAp = []}
>>> fromInteger 0 :: Ap [] Int
Ap {getAp = [0]}
Дистрибутивность: >>> Ap [1,2] * (3 + 4)
Ap {getAp = [7,14]}
>>> (Ap [1,2] * 3) + (Ap [1,2] * 4)
Ap {getAp = [7,11,10,14]}
С версии: base-4.12.0.0 |
||||
Определено в GHC.Internal.Data.Monoid | |||||
| Read (f a) => Read (Ap f a) Источник | С версии: base-4.12.0.0 |
||||
Определено в GHC.Internal.Data.Monoid МетодыreadsPrec :: Целое -> ReadS (Ap f a) Исходный код readList :: ReadS [Ap f a] Исходный код readPrec :: ReadPrec (Ap f a) Исходный код readListPrec :: ReadPrec [Ap f a] Исходный код | |
| Show (f a) => Show (Ap f a) Исходный код | С момента: base-4.12.0.0 |
Определено в GHC.Internal.Data.Monoid МетодыshowsPrec :: Целое -> Ap f a -> ShowS Исходный код show :: Ap f a -> Строка Исходный код showList :: [Ap f a] -> ShowS Исходный код | |
| Eq (f a) => Eq (Ap f a) Исходный код | С момента: base-4.12.0.0 |
Определено в GHC.Internal.Data.Monoid Методы(==) :: Ap f a -> Ap f a -> Булево Исходный код (/=) :: Ap f a -> Ap f a -> Булево Исходный код | |
| Ord (f a) => Ord (Ap f a) Исходный код | С момента: base-4.12.0.0 |
Определено в GHC.Internal.Data.Monoid Методыcompare :: Ap f a -> Ap f a -> Ordering Исходный код (<) :: Ap f a -> Ap f a -> Булево Исходный код (<=) :: Ap f a -> Ap f a -> Булево Исходный код (>) :: Ap f a -> Ap f a -> Булево Исходный код (>=) :: Ap f a -> Ap f a -> Булево Исходный код max :: Ap f a -> Ap f a -> Ap f a Исходный код min :: Ap f a -> Ap f a -> Ap f a Исходный код | |
| type Rep1 (Ap f :: k -> Тип) Исходный код | С момента: base-4.12.0.0 |
Определено в GHC.Internal.Data.Monoid type Rep1 (Ap f :: k -> Тип) = D1 ('Метаданные "Ap" "GHC.Internal.Data.Monoid" "ghc-internal" 'True) (C1 ('MetaCons "Ap" 'PrefixI 'True) (S1 ('MetaSel ('Just "getAp") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 f))) | |
| type Rep (Ap f a) Исходный код | С момента: base-4.12.0.0 |
Определено в GHC.Internal.Data.Monoid |
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.12.1/docs/libraries/base-4.21.0.0-8e62/Data-Monoid.html