Data.Foldable
| Copyright | Ross Paterson 2005 |
|---|---|
| License | BSD-style (see the LICENSE file in the distribution) |
| Maintainer | libraries@haskell.org |
| Stability | experimental |
| Portability | portable |
| Safe Haskell | Trustworthy |
| Language | Haskell2010 |
Описание
Класс структур данных, которые могут быть свёрнуты в сводное значение.
Структуры данных, которые могут быть свёрнуты.
Например, задан тип данных
data Tree a = Empty | Leaf a | Node (Tree a) a (Tree a)
соответствующий экземпляр будет
instance Foldable Tree where foldMap f Empty = mempty foldMap f (Leaf x) = f x foldMap f (Node l k r) = foldMap f l `mappend` f k `mappend` foldMap f r
Это подходит даже для абстрактных типов, так как предполагается, что моноид удовлетворяет законам моноида. В качестве альтернативы можно определить foldr:
instance Foldable Tree where foldr f z Empty = z foldr f z (Leaf x) = f x z foldr f z (Node l k r) = foldr f (f k (foldr f z r)) l
Foldable экземпляры должны удовлетворять следующим законам:
foldr f z t = appEndo (foldMap (Endo . f) t ) z
foldl f z t = appEndo (getDual (foldMap (Dual . Endo . flip f) t)) z
fold = foldMap id
length = getSum . foldMap (Sum . const 1)
sum, product, maximum, и minimum должны быть в сущности эквивалентны foldMap формам, таким как
sum = getSum . foldMap Sum
но могут быть менее определёнными.
Если тип также является экземпляром Functor , он должен удовлетворять
foldMap f = fold . fmap f
что подразумевает, что
foldMap f . fmap g = foldMap (f . g)
Методы
fold :: Monoid m => t m -> m Source
Комбинирование элементов структуры с использованием моноида.
foldMap :: Monoid m => (a -> m) -> t a -> m Source
Применяет к каждому элементу структуры функцию в моноид и объединяет результаты.
foldMap' :: Monoid m => (a -> m) -> t a -> m Source
Вариант foldMap, который строго работает с аккумулятором.
С: base-4.13.0.0
foldr :: (a -> b -> b) -> b -> t a -> b Source
Правая ассоциативная свёртка структуры.
В случае списков, foldr, при применении к бинарному оператору, начальному значению (обычно правому тождеству оператора) и списку, сводит список с использованием бинарного оператора справа налево:
foldr f z [x1, x2, ..., xn] == x1 `f` (x2 `f` ... (xn `f` z)...)
Обратите внимание, что так как заголовок полученного выражения получен применением оператора к первому элементу списка, foldr может производить завершающее выражение из бесконечного списка.
Для общей структуры Foldable это должно быть семантически идентично,
foldr f z = foldr f z . toList
foldr' :: (a -> b -> b) -> b -> t a -> b Source
Правая ассоциативная свёртка структуры, но со строгим применением оператора.
С: base-4.6.0.0
foldl :: (b -> a -> b) -> b -> t a -> b Source
Левая ассоциативная свёртка структуры.
В случае списков, foldl, при применении к бинарному оператору, начальному значению (обычно левому тождеству оператора) и списку, сводит список с использованием бинарного оператора слева направо:
foldl f z [x1, x2, ..., xn] == (...((z `f` x1) `f` x2) `f`...) `f` xn
Обратите внимание, что для получения внешнего применения оператора требуется пройти весь входящий список. Это означает, что foldl' будет расходиться, если ему будет передан бесконечный список.
Также обратите внимание, что если вам нужна эффективная левая свёртка, вы, вероятно, захотите использовать foldl' вместо foldl. Причина в том, что последний не принуждает «внутренние» результаты (например, z `f` x1 в приведенном выше примере) перед их применением к оператору (например, к (`f` x2)). Это приводит к цепочке ленивых вычислений длиной \(\mathcal{O}(n)\) элементов, которые затем должны быть оценены снаружи вовнутрь.
Для общей структуры Foldable это должно быть семантически идентично,
foldl f z = foldl f z . toList
foldl' :: (b -> a -> b) -> b -> t a -> b Source
Левая ассоциативная свёртка структуры, но со строгим применением оператора.
Это гарантирует, что каждый шаг свёртки принуждается к слабой нормальной форме перед применением, избегая сбора ленивых вычислений, которые в противном случае возникли бы. Это часто то, что вам нужно для строгого сведения конечного списка к одному монолитном результату (например, length).
Для общей структуры Foldable это должно быть семантически идентично,
foldl' f z = foldl' f z . toList
С: base-4.6.0.0
foldr1 :: (a -> a -> a) -> t a -> a Source
Вариант foldr, у которого нет базового случая, и поэтому он может применяться только к непустым структурам.
foldr1 f = foldr1 f . toList
foldl1 :: (a -> a -> a) -> t a -> a Source
Вариант foldl, у которого нет базового случая, и поэтому он может применяться только к непустым структурам.
foldl1 f = foldl1 f . toList
Список элементов структуры, слева направо.
С: base-4.8.0.0
Проверка, пуста ли структура. По умолчанию реализация оптимизирована для структур, похожих на списки, так как нет универсального способа сделать лучше.
С: base-4.8.0.0
Возвращает размер/длину конечной структуры в качестве Int. По умолчанию реализация оптимизирована для структур, похожих на списки, так как нет универсального способа сделать лучше.
С: base-4.8.0.0
elem :: Eq a => a -> t a -> Bool infix 4 Source
Является ли элемент присутствующим в структуре?
С: base-4.8.0.0
maximum :: forall a. Ord a => t a -> a Source
Наибольший элемент непустой структуры.
С: base-4.8.0.0
minimum :: forall a. Ord a => t a -> a Source
Наименьший элемент непустой структуры.
С: base-4.8.0.0
sum :: Num a => t a -> a Source
Функция sum вычисляет сумму чисел структуры.
С: base-4.8.0.0
product :: Num a => t a -> a Source
Функция product вычисляет произведение чисел структуры.
С: base-4.8.0.0
Экземпляры
| Foldable [] | С версии: base-2.1 |
Определено в Data.Foldable Методыfold :: Monoid m => [m] -> m Источник foldMap :: Monoid m => (a -> m) -> [a] -> m Источник foldMap' :: Monoid m => (a -> m) -> [a] -> m Источник foldr :: (a -> b -> b) -> b -> [a] -> b Источник foldr' :: (a -> b -> b) -> b -> [a] -> b Источник foldl :: (b -> a -> b) -> b -> [a] -> b Источник foldl' :: (b -> a -> b) -> b -> [a] -> b Источник foldr1 :: (a -> a -> a) -> [a] -> a Источник foldl1 :: (a -> a -> a) -> [a] -> a Источник elem :: Eq a => a -> [a] -> Bool Источник maximum :: Ord a => [a] -> a Источник minimum :: Ord a => [a] -> a Источник | |
| Foldable Maybe | С версии: base-2.1 |
Определено в Data.Foldable Методыfold :: Monoid m => Maybe m -> m Источник foldMap :: Monoid m => (a -> m) -> Maybe a -> m Источник foldMap' :: Monoid m => (a -> m) -> Maybe a -> m Источник foldr :: (a -> b -> b) -> b -> Maybe a -> b Источник foldr' :: (a -> b -> b) -> b -> Maybe a -> b Источник foldl :: (b -> a -> b) -> b -> Maybe a -> b Источник foldl' :: (b -> a -> b) -> b -> Maybe a -> b Источник foldr1 :: (a -> a -> a) -> Maybe a -> a Источник foldl1 :: (a -> a -> a) -> Maybe a -> a Источник toList :: Maybe a -> [a] Источник null :: Maybe a -> Bool Источник length :: Maybe a -> Int Источник elem :: Eq a => a -> Maybe a -> Bool Источник maximum :: Ord a => Maybe a -> a Источник minimum :: Ord a => Maybe a -> a Источник | |
| Foldable Par1 | С версии: base-4.9.0.0 |
Определено в Data.Foldable Методыfold :: Monoid m => Par1 m -> m Исходный код foldMap :: Monoid m => (a -> m) -> Par1 a -> m Исходный код foldMap' :: Monoid m => (a -> m) -> Par1 a -> m Исходный код foldr :: (a -> b -> b) -> b -> Par1 a -> b Исходный код foldr' :: (a -> b -> b) -> b -> Par1 a -> b Исходный код foldl :: (b -> a -> b) -> b -> Par1 a -> b Исходный код foldl' :: (b -> a -> b) -> b -> Par1 a -> b Исходный код foldr1 :: (a -> a -> a) -> Par1 a -> a Исходный код foldl1 :: (a -> a -> a) -> Par1 a -> a Исходный код toList :: Par1 a -> [a] Исходный код null :: Par1 a -> Bool Исходный код length :: Par1 a -> Int Исходный код elem :: Eq a => a -> Par1 a -> Bool Исходный код maximum :: Ord a => Par1 a -> a Исходный код minimum :: Ord a => Par1 a -> a Исходный код sum :: Num a => Par1 a -> a Исходный код product :: Num a => Par1 a -> a Исходный код | |
| Foldable NonEmpty | С момента: base-4.9.0.0 |
Определено в Data.Foldable Краткое описание методовfold :: Monoid m => NonEmpty m -> m Источник foldMap :: Monoid m => (a -> m) -> NonEmpty a -> m Источник foldMap' :: Monoid m => (a -> m) -> NonEmpty a -> m Источник foldr :: (a -> b -> b) -> b -> NonEmpty a -> b Источник foldr' :: (a -> b -> b) -> b -> NonEmpty a -> b Источник foldl :: (b -> a -> b) -> b -> NonEmpty a -> b Источник foldl' :: (b -> a -> b) -> b -> NonEmpty a -> b Источник foldr1 :: (a -> a -> a) -> NonEmpty a -> a Источник foldl1 :: (a -> a -> a) -> NonEmpty a -> a Источник toList :: NonEmpty a -> [a] Источник null :: NonEmpty a -> Bool Источник length :: NonEmpty a -> Int Источник elem :: Eq a => a -> NonEmpty a -> Bool Источник maximum :: Ord a => NonEmpty a -> a Источник minimum :: Ord a => NonEmpty a -> a Источник | |
| Foldable Down | С версии: base-4.12.0.0 |
Определено в Data.Foldable Краткое описание методовfold :: Monoid m => Down m -> m Источник foldMap :: Monoid m => (a -> m) -> Down a -> m Источник foldMap' :: Monoid m => (a -> m) -> Down a -> m Источник foldr :: (a -> b -> b) -> b -> Down a -> b Источник foldr' :: (a -> b -> b) -> b -> Down a -> b Источник foldl :: (b -> a -> b) -> b -> Down a -> b Источник foldl' :: (b -> a -> b) -> b -> Down a -> b Источник foldr1 :: (a -> a -> a) -> Down a -> a Источник foldl1 :: (a -> a -> a) -> Down a -> a Источник toList :: Down a -> [a] Источник null :: Down a -> Bool Источник length :: Down a -> Int Источник elem :: Eq a => a -> Down a -> Bool Источник maximum :: Ord a => Down a -> a Источник minimum :: Ord a => Down a -> a Источник | |
| Foldable Product | Since: base-4.8.0.0 |
Defined in 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 | |
| Foldable Sum | Since: base-4.8.0.0 |
Defined in Data.Foldable Краткое описание методовfold :: 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 | |
| Foldable Dual | Since: base-4.8.0.0 |
Определено в 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 | |
| Foldable Last | Since: base-4.8.0.0 |
Определено в Data.Foldable Краткое описание методовfold :: Monoid m => Last m -> m Source foldMap :: Monoid m => (a -> m) -> Last a -> m Source foldMap' :: Monoid m => (a -> m) -> Last a -> m Source foldr :: (a -> b -> b) -> b -> Last a -> b Source foldr' :: (a -> b -> b) -> b -> Last a -> b Source foldl :: (b -> a -> b) -> b -> Last a -> b Source foldl' :: (b -> a -> b) -> b -> Last a -> b Source foldr1 :: (a -> a -> a) -> Last a -> a Source foldl1 :: (a -> a -> a) -> Last a -> a Source toList :: Last a -> [a] Source length :: Last a -> Int Source elem :: Eq a => a -> Last a -> Bool Source maximum :: Ord a => Last a -> a Source minimum :: Ord a => Last a -> a Source | |
| Foldable First | Since: base-4.8.0.0 |
Определено в 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 Исходный код | |
| Foldable Identity | Since: base-4.8.0.0 |
Определено в Data.Functor.Identity Методыfold :: Monoid m => Identity m -> m Исходный код foldMap :: Monoid m => (a -> m) -> Identity a -> m Исходный код foldMap' :: Monoid m => (a -> m) -> Identity a -> m Исходный код foldr :: (a -> b -> b) -> b -> Identity a -> b Исходный код foldr' :: (a -> b -> b) -> b -> Identity a -> b Исходный код foldl :: (b -> a -> b) -> b -> Identity a -> b Исходный код foldl' :: (b -> a -> b) -> b -> Identity a -> b Исходный код foldr1 :: (a -> a -> a) -> Identity a -> a Исходный код foldl1 :: (a -> a -> a) -> Identity a -> a Исходный код toList :: Identity a -> [a] Исходный код null :: Identity a -> Bool Исходный код length :: Identity a -> Int Исходный код elem :: Eq a => a -> Identity a -> Bool Исходный код maximum :: Ord a => Identity a -> a Исходный код minimum :: Ord a => Identity a -> a Исходный код sum :: Num a => Identity a -> a Исходный код product :: Num a => Identity a -> a Исходный код | |
| Foldable ZipList | С: base-4.9.0.0 |
Определено в Control.Applicative Методыfold :: Monoid m => ZipList m -> m Исходный код foldMap :: Monoid m => (a -> m) -> ZipList a -> m Исходный код foldMap' :: Monoid m => (a -> m) -> ZipList a -> m Исходный код foldr :: (a -> b -> b) -> b -> ZipList a -> b Исходный код foldr' :: (a -> b -> b) -> b -> ZipList a -> b Исходный код foldl :: (b -> a -> b) -> b -> ZipList a -> b Исходный код foldl' :: (b -> a -> b) -> b -> ZipList a -> b Исходный код foldr1 :: (a -> a -> a) -> ZipList a -> a Исходный код foldl1 :: (a -> a -> a) -> ZipList a -> a Исходный код toList :: ZipList a -> [a] Исходный код null :: ZipList a -> Bool Исходный код length :: ZipList a -> Int Исходный код elem :: Eq a => a -> ZipList a -> Bool Исходный код maximum :: Ord a => ZipList a -> a Исходный код minimum :: Ord a => ZipList a -> a Исходный код sum :: Num a => ZipList a -> a Исходный код product :: Num a => ZipList a -> a Исходный код | |
| Foldable Option | С момента: base-4.9.0.0 |
Определено в Data.Semigroup Методыfold :: Monoid m => Option m -> m Source foldMap :: Monoid m => (a -> m) -> Option a -> m Source foldMap' :: Monoid m => (a -> m) -> Option a -> m Source foldr :: (a -> b -> b) -> b -> Option a -> b Source foldr' :: (a -> b -> b) -> b -> Option a -> b Source foldl :: (b -> a -> b) -> b -> Option a -> b Source foldl' :: (b -> a -> b) -> b -> Option a -> b Source foldr1 :: (a -> a -> a) -> Option a -> a Source foldl1 :: (a -> a -> a) -> Option a -> a Source toList :: Option a -> [a] Source null :: Option a -> Bool Source length :: Option a -> Int Source elem :: Eq a => a -> Option a -> Bool Source maximum :: Ord a => Option a -> a Source minimum :: Ord a => Option a -> a Source | |
| Foldable Last | С версии: base-4.9.0.0 |
Определено в Data.Semigroup Методыfold :: Monoid m => Last m -> m Source foldMap :: Monoid m => (a -> m) -> Last a -> m Source foldMap' :: Monoid m => (a -> m) -> Last a -> m Source foldr :: (a -> b -> b) -> b -> Last a -> b Source foldr' :: (a -> b -> b) -> b -> Last a -> b Source foldl :: (b -> a -> b) -> b -> Last a -> b Source foldl' :: (b -> a -> b) -> b -> Last a -> b Source foldr1 :: (a -> a -> a) -> Last a -> a Source foldl1 :: (a -> a -> a) -> Last a -> a Source toList :: Last a -> [a] Source length :: Last a -> Int Source elem :: Eq a => a -> Last a -> Bool Source maximum :: Ord a => Last a -> a Source minimum :: Ord a => Last a -> a Source | |
| Foldable First | Since: base-4.9.0.0 |
Определено в Data.Semigroup Методы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 Источник | |
| Foldable Max | Since: base-4.9.0.0 |
Определено в Data.Semigroup Краткое описание методовfold :: Monoid m => Max m -> m Source foldMap :: Monoid m => (a -> m) -> Max a -> m Source foldMap' :: Monoid m => (a -> m) -> Max a -> m Source foldr :: (a -> b -> b) -> b -> Max a -> b Source foldr' :: (a -> b -> b) -> b -> Max a -> b Source foldl :: (b -> a -> b) -> b -> Max a -> b Source foldl' :: (b -> a -> b) -> b -> Max a -> b Source foldr1 :: (a -> a -> a) -> Max a -> a Source foldl1 :: (a -> a -> a) -> Max a -> a Source elem :: Eq a => a -> Max a -> Bool Source maximum :: Ord a => Max a -> a Source minimum :: Ord a => Max a -> a Source | |
| Foldable Min | С версии: base-4.9.0.0 |
Определено в Data.Semigroup Краткое описание методовfold :: Monoid m => Min m -> m Source foldMap :: Monoid m => (a -> m) -> Min a -> m Source foldMap' :: Monoid m => (a -> m) -> Min a -> m Source foldr :: (a -> b -> b) -> b -> Min a -> b Source foldr' :: (a -> b -> b) -> b -> Min a -> b Source foldl :: (b -> a -> b) -> b -> Min a -> b Source foldl' :: (b -> a -> b) -> b -> Min a -> b Source foldr1 :: (a -> a -> a) -> Min a -> a Source foldl1 :: (a -> a -> a) -> Min a -> a Source elem :: Eq a => a -> Min a -> Bool Source maximum :: Ord a => Min a -> a Source minimum :: Ord a => Min a -> a Source | |
| Foldable Complex | С версии: base-4.9.0.0 |
Определено в Data.Complex Методыfold :: Monoid m => Complex m -> m Исходный код foldMap :: Monoid m => (a -> m) -> Complex a -> m Исходный код foldMap' :: Monoid m => (a -> m) -> Complex a -> m Исходный код foldr :: (a -> b -> b) -> b -> Complex a -> b Исходный код foldr' :: (a -> b -> b) -> b -> Complex a -> b Исходный код foldl :: (b -> a -> b) -> b -> Complex a -> b Исходный код foldl' :: (b -> a -> b) -> b -> Complex a -> b Исходный код foldr1 :: (a -> a -> a) -> Complex a -> a Исходный код foldl1 :: (a -> a -> a) -> Complex a -> a Исходный код toList :: Complex a -> [a] Исходный код null :: Complex a -> Bool Исходный код length :: Complex a -> Int Исходный код elem :: Eq a => a -> Complex a -> Bool Исходный код maximum :: Ord a => Complex a -> a Исходный код minimum :: Ord a => Complex a -> a Исходный код sum :: Num a => Complex a -> a Исходный код product :: Num a => Complex a -> a Исходный код | |
| Foldable (Either a) | С момента: base-4.7.0.0 |
Определено в Data.Foldable Методыfold :: Monoid m => Either a m -> m Исходный код foldMap :: Monoid m => (a0 -> m) -> Either a a0 -> m Исходный код foldMap' :: Monoid m => (a0 -> m) -> Either a a0 -> m Исходный код foldr :: (a0 -> b -> b) -> b -> Either a a0 -> b Исходный код foldr' :: (a0 -> b -> b) -> b -> Either a a0 -> b Исходный код foldl :: (b -> a0 -> b) -> b -> Either a a0 -> b Исходный код foldl' :: (b -> a0 -> b) -> b -> Either a a0 -> b Исходный код foldr1 :: (a0 -> a0 -> a0) -> Either a a0 -> a0 Исходный код foldl1 :: (a0 -> a0 -> a0) -> Either a a0 -> a0 Исходный код toList :: Either a a0 -> [a0] Исходный код null :: Either a a0 -> Bool Исходный код length :: Either a a0 -> Int Исходный код elem :: Eq a0 => a0 -> Either a a0 -> Bool Исходный код maximum :: Ord a0 => Either a a0 -> a0 Исходный код minimum :: Ord a0 => Either a a0 -> a0 Исходный код sum :: Num a0 => Either a a0 -> a0 Исходный код product :: Num a0 => Either a a0 -> a0 Исходный код | |
| Foldable (V1 :: Type -> Type) | Since: base-4.9.0.0 |
Определено в Data.Foldable Методыfold :: Monoid m => V1 m -> m Источник foldMap :: Monoid m => (a -> m) -> V1 a -> m Источник foldMap' :: Monoid m => (a -> m) -> V1 a -> m Источник foldr :: (a -> b -> b) -> b -> V1 a -> b Источник foldr' :: (a -> b -> b) -> b -> V1 a -> b Источник foldl :: (b -> a -> b) -> b -> V1 a -> b Источник foldl' :: (b -> a -> b) -> b -> V1 a -> b Источник foldr1 :: (a -> a -> a) -> V1 a -> a Источник foldl1 :: (a -> a -> a) -> V1 a -> a Источник toList :: V1 a -> [a] Источник length :: V1 a -> Int Источник elem :: Eq a => a -> V1 a -> Bool Источник maximum :: Ord a => V1 a -> a Источник minimum :: Ord a => V1 a -> a Источник | |
| Foldable (U1 :: Type -> Type) | Since: base-4.9.0.0 |
Определено в Data.Foldable Краткое описание методовfold :: Monoid m => U1 m -> m Source foldMap :: Monoid m => (a -> m) -> U1 a -> m Source foldMap' :: Monoid m => (a -> m) -> U1 a -> m Source foldr :: (a -> b -> b) -> b -> U1 a -> b Source foldr' :: (a -> b -> b) -> b -> U1 a -> b Source foldl :: (b -> a -> b) -> b -> U1 a -> b Source foldl' :: (b -> a -> b) -> b -> U1 a -> b Source foldr1 :: (a -> a -> a) -> U1 a -> a Source foldl1 :: (a -> a -> a) -> U1 a -> a Source elem :: Eq a => a -> U1 a -> Bool Source maximum :: Ord a => U1 a -> a Source minimum :: Ord a => U1 a -> a Source | |
| Foldable (UAddr :: Type -> Type) | С версии: base-4.9.0.0 |
Определено в Data.Foldable Краткое описание методовfold :: Monoid m => UAddr m -> m Source foldMap :: Monoid m => (a -> m) -> UAddr a -> m Source foldMap' :: Monoid m => (a -> m) -> UAddr a -> m Source foldr :: (a -> b -> b) -> b -> UAddr a -> b Source foldr' :: (a -> b -> b) -> b -> UAddr a -> b Source foldl :: (b -> a -> b) -> b -> UAddr a -> b Source foldl' :: (b -> a -> b) -> b -> UAddr a -> b Source foldr1 :: (a -> a -> a) -> UAddr a -> a Source foldl1 :: (a -> a -> a) -> UAddr a -> a Source toList :: UAddr a -> [a] Source null :: UAddr a -> Bool Source length :: UAddr a -> Int Source elem :: Eq a => a -> UAddr a -> Bool Source maximum :: Ord a => UAddr a -> a Source minimum :: Ord a => UAddr a -> a Source | |
| Foldable (UChar :: Type -> Type) | Since: base-4.9.0.0 |
Определено в Data.Foldable Методыfold :: Monoid m => UChar m -> m Исходный код foldMap :: Monoid m => (a -> m) -> UChar a -> m Исходный код foldMap' :: Monoid m => (a -> m) -> UChar a -> m Исходный код foldr :: (a -> b -> b) -> b -> UChar a -> b Исходный код foldr' :: (a -> b -> b) -> b -> UChar a -> b Исходный код foldl :: (b -> a -> b) -> b -> UChar a -> b Исходный код foldl' :: (b -> a -> b) -> b -> UChar a -> b Исходный код foldr1 :: (a -> a -> a) -> UChar a -> a Исходный код foldl1 :: (a -> a -> a) -> UChar a -> a Исходный код toList :: UChar a -> [a] Исходный код null :: UChar a -> Bool Исходный код length :: UChar a -> Int Исходный код elem :: Eq a => a -> UChar a -> Bool Исходный код maximum :: Ord a => UChar a -> a Исходный код minimum :: Ord a => UChar a -> a Исходный код sum :: Num a => UChar a -> a Исходный код product :: Num a => UChar a -> a Исходный код | |
| Foldable (UDouble :: Type -> Type) | Since: base-4.9.0.0 |
Определено в Data.Foldable Краткое описание методовfold :: Monoid m => UDouble m -> m Source foldMap :: Monoid m => (a -> m) -> UDouble a -> m Source foldMap' :: Monoid m => (a -> m) -> UDouble a -> m Source foldr :: (a -> b -> b) -> b -> UDouble a -> b Source foldr' :: (a -> b -> b) -> b -> UDouble a -> b Source foldl :: (b -> a -> b) -> b -> UDouble a -> b Source foldl' :: (b -> a -> b) -> b -> UDouble a -> b Source foldr1 :: (a -> a -> a) -> UDouble a -> a Source foldl1 :: (a -> a -> a) -> UDouble a -> a Source toList :: UDouble a -> [a] Source null :: UDouble a -> Bool Source length :: UDouble a -> Int Source elem :: Eq a => a -> UDouble a -> Bool Source maximum :: Ord a => UDouble a -> a Source minimum :: Ord a => UDouble a -> a Source | |
| Foldable (UFloat :: Type -> Type) | С версии: base-4.9.0.0 |
Определено в Data.Foldable Краткое описание методовfold :: Monoid m => UFloat m -> m Source foldMap :: Monoid m => (a -> m) -> UFloat a -> m Source foldMap' :: Monoid m => (a -> m) -> UFloat a -> m Source foldr :: (a -> b -> b) -> b -> UFloat a -> b Source foldr' :: (a -> b -> b) -> b -> UFloat a -> b Source foldl :: (b -> a -> b) -> b -> UFloat a -> b Source foldl' :: (b -> a -> b) -> b -> UFloat a -> b Source foldr1 :: (a -> a -> a) -> UFloat a -> a Source foldl1 :: (a -> a -> a) -> UFloat a -> a Source toList :: UFloat a -> [a] Source null :: UFloat a -> Bool Source length :: UFloat a -> Int Source elem :: Eq a => a -> UFloat a -> Bool Source maximum :: Ord a => UFloat a -> a Source minimum :: Ord a => UFloat a -> a Source | |
| Foldable (UInt :: Type -> Type) | Since: base-4.9.0.0 |
Определено в Data.Foldable Методыfold :: Monoid m => UInt m -> m Источник foldMap :: Monoid m => (a -> m) -> UInt a -> m Источник foldMap' :: Monoid m => (a -> m) -> UInt a -> m Источник foldr :: (a -> b -> b) -> b -> UInt a -> b Источник foldr' :: (a -> b -> b) -> b -> UInt a -> b Источник foldl :: (b -> a -> b) -> b -> UInt a -> b Источник foldl' :: (b -> a -> b) -> b -> UInt a -> b Источник foldr1 :: (a -> a -> a) -> UInt a -> a Источник foldl1 :: (a -> a -> a) -> UInt a -> a Источник toList :: UInt a -> [a] Источник null :: UInt a -> Bool Источник length :: UInt a -> Int Источник elem :: Eq a => a -> UInt a -> Bool Источник maximum :: Ord a => UInt a -> a Источник minimum :: Ord a => UInt a -> a Источник | |
| Foldable (UWord :: Type -> Type) | Since: base-4.9.0.0 |
Определено в Data.Foldable Краткое описание методовfold :: Monoid m => UWord m -> m Source foldMap :: Monoid m => (a -> m) -> UWord a -> m Source foldMap' :: Monoid m => (a -> m) -> UWord a -> m Source foldr :: (a -> b -> b) -> b -> UWord a -> b Source foldr' :: (a -> b -> b) -> b -> UWord a -> b Source foldl :: (b -> a -> b) -> b -> UWord a -> b Source foldl' :: (b -> a -> b) -> b -> UWord a -> b Source foldr1 :: (a -> a -> a) -> UWord a -> a Source foldl1 :: (a -> a -> a) -> UWord a -> a Source toList :: UWord a -> [a] Source null :: UWord a -> Bool Source length :: UWord a -> Int Source elem :: Eq a => a -> UWord a -> Bool Source maximum :: Ord a => UWord a -> a Source minimum :: Ord a => UWord a -> a Source | |
| Foldable ((,) a) | С версии: base-4.7.0.0 |
Определено в Data.Foldable Краткое описание методовfold :: Monoid m => (a, m) -> m Source foldMap :: Monoid m => (a0 -> m) -> (a, a0) -> m Source foldMap' :: Monoid m => (a0 -> m) -> (a, a0) -> m Source foldr :: (a0 -> b -> b) -> b -> (a, a0) -> b Source foldr' :: (a0 -> b -> b) -> b -> (a, a0) -> b Source foldl :: (b -> a0 -> b) -> b -> (a, a0) -> b Source foldl' :: (b -> a0 -> b) -> b -> (a, a0) -> b Source foldr1 :: (a0 -> a0 -> a0) -> (a, a0) -> a0 Source foldl1 :: (a0 -> a0 -> a0) -> (a, a0) -> a0 Source toList :: (a, a0) -> [a0] Source null :: (a, a0) -> Bool Source length :: (a, a0) -> Int Source elem :: Eq a0 => a0 -> (a, a0) -> Bool Source maximum :: Ord a0 => (a, a0) -> a0 Source minimum :: Ord a0 => (a, a0) -> a0 Source | |
| Foldable (Array i) | С версии: base-4.8.0.0 |
Определено в Data.Foldable Краткое описание методовfold :: Monoid m => Array i m -> m Источник foldMap :: Monoid m => (a -> m) -> Array i a -> m Источник foldMap' :: Monoid m => (a -> m) -> Array i a -> m Источник foldr :: (a -> b -> b) -> b -> Array i a -> b Источник foldr' :: (a -> b -> b) -> b -> Array i a -> b Источник foldl :: (b -> a -> b) -> b -> Array i a -> b Источник foldl' :: (b -> a -> b) -> b -> Array i a -> b Источник foldr1 :: (a -> a -> a) -> Array i a -> a Источник foldl1 :: (a -> a -> a) -> Array i a -> a Источник toList :: Array i a -> [a] Источник null :: Array i a -> Bool Источник length :: Array i a -> Int Источник elem :: Eq a => a -> Array i a -> Bool Источник maximum :: Ord a => Array i a -> a Источник minimum :: Ord a => Array i a -> a Источник | |
| Foldable (Proxy :: Type -> Type) | С версии: base-4.7.0.0 |
Определено в Data.Foldable Краткое описание методовfold :: Monoid m => Proxy m -> m Источник foldMap :: Monoid m => (a -> m) -> Proxy a -> m Источник foldMap' :: Monoid m => (a -> m) -> Proxy a -> m Источник foldr :: (a -> b -> b) -> b -> Proxy a -> b Источник foldr' :: (a -> b -> b) -> b -> Proxy a -> b Источник foldl :: (b -> a -> b) -> b -> Proxy a -> b Источник foldl' :: (b -> a -> b) -> b -> Proxy a -> b Источник foldr1 :: (a -> a -> a) -> Proxy a -> a Источник foldl1 :: (a -> a -> a) -> Proxy a -> a Источник toList :: Proxy a -> [a] Источник null :: Proxy a -> Bool Источник length :: Proxy a -> Int Источник elem :: Eq a => a -> Proxy a -> Bool Источник maximum :: Ord a => Proxy a -> a Источник minimum :: Ord a => Proxy a -> a Источник | |
| Foldable (Arg a) | С версии: base-4.9.0.0 |
Определено в Data.Semigroup Методыfold :: Моноид m => Аргумент a m -> m Исходный код foldMap :: Моноид m => (a0 -> m) -> Аргумент a a0 -> m Исходный код foldMap' :: Моноид m => (a0 -> m) -> Аргумент a a0 -> m Исходный код foldr :: (a0 -> b -> b) -> b -> Аргумент a a0 -> b Исходный код foldr' :: (a0 -> b -> b) -> b -> Аргумент a a0 -> b Исходный код foldl :: (b -> a0 -> b) -> b -> Аргумент a a0 -> b Исходный код foldl' :: (b -> a0 -> b) -> b -> Аргумент a a0 -> b Исходный код foldr1 :: (a0 -> a0 -> a0) -> Аргумент a a0 -> a0 Исходный код foldl1 :: (a0 -> a0 -> a0) -> Аргумент a a0 -> a0 Исходный код toList :: Аргумент a a0 -> [a0] Исходный код null :: Аргумент a a0 -> Булево Исходный код length :: Аргумент a a0 -> Целое Исходный код elem :: Eq a0 => a0 -> Аргумент a a0 -> Булево Исходный код maximum :: Ord a0 => Аргумент a a0 -> a0 Исходный код minimum :: Ord a0 => Аргумент a a0 -> a0 Исходный код sum :: Число a0 => Аргумент a a0 -> a0 Исходный код product :: Число a0 => Аргумент a a0 -> a0 Исходный код | |
| Foldable f => Foldable (Rec1 f) | С: base-4.9.0.0 |
Определено в Data.Foldable Методыfold :: Моноид m => Rec1 f m -> m Исходный код foldMap :: Моноид m => (a -> m) -> Rec1 f a -> m Исходный код foldMap' :: Моноид m => (a -> m) -> Rec1 f a -> m Исходный код foldr :: (a -> b -> b) -> b -> Rec1 f a -> b Исходный код foldr' :: (a -> b -> b) -> b -> Rec1 f a -> b Исходный код foldl :: (b -> a -> b) -> b -> Rec1 f a -> b Исходный код foldl' :: (b -> a -> b) -> b -> Rec1 f a -> b Исходный код foldr1 :: (a -> a -> a) -> Rec1 f a -> a Исходный код foldl1 :: (a -> a -> a) -> Rec1 f a -> a Исходный код toList :: Rec1 f a -> [a] Исходный код null :: Rec1 f a -> Булево Исходный код length :: Rec1 f a -> Целое Исходный код elem :: Eq a => a -> Rec1 f a -> Булево Исходный код maximum :: Ord a => Rec1 f a -> a Исходный код minimum :: Ord a => Rec1 f a -> a Исходный код sum :: Число a => Rec1 f a -> a Исходный код product :: Число a => Rec1 f a -> a Исходный код | |
| Foldable f => Foldable (Alt f) | Since: base-4.12.0.0 |
Defined in 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 | |
| Foldable f => Foldable (Ap f) | Since: base-4.12.0.0 |
Defined in Data.Foldable Краткое описание методовfold :: Monoid m => Ap f m -> m Source foldMap :: Monoid m => (a -> m) -> Ap f a -> m Source foldMap' :: Monoid m => (a -> m) -> Ap f a -> m Source foldr :: (a -> b -> b) -> b -> Ap f a -> b Source foldr' :: (a -> b -> b) -> b -> Ap f a -> b Source foldl :: (b -> a -> b) -> b -> Ap f a -> b Source foldl' :: (b -> a -> b) -> b -> Ap f a -> b Source foldr1 :: (a -> a -> a) -> Ap f a -> a Source foldl1 :: (a -> a -> a) -> Ap f a -> a Source toList :: Ap f a -> [a] Source length :: Ap f a -> Int Source elem :: Eq a => a -> Ap f a -> Bool Source maximum :: Ord a => Ap f a -> a Source minimum :: Ord a => Ap f a -> a Source | |
| Foldable (Const m :: Type -> Type) | Since: base-4.7.0.0 |
Определено в Data.Functor.Const Методыfold :: Monoid m0 => Const m m0 -> m0 Исходный код foldMap :: Monoid m0 => (a -> m0) -> Const m a -> m0 Исходный код foldMap' :: Monoid m0 => (a -> m0) -> Const m a -> m0 Исходный код foldr :: (a -> b -> b) -> b -> Const m a -> b Исходный код foldr' :: (a -> b -> b) -> b -> Const m a -> b Исходный код foldl :: (b -> a -> b) -> b -> Const m a -> b Исходный код foldl' :: (b -> a -> b) -> b -> Const m a -> b Исходный код foldr1 :: (a -> a -> a) -> Const m a -> a Исходный код foldl1 :: (a -> a -> a) -> Const m a -> a Исходный код toList :: Const m a -> [a] Исходный код null :: Const m a -> Bool Исходный код length :: Const m a -> Int Исходный код elem :: Eq a => a -> Const m a -> Bool Исходный код maximum :: Ord a => Const m a -> a Исходный код minimum :: Ord a => Const m a -> a Исходный код sum :: Num a => Const m a -> a Исходный код product :: Num a => Const m a -> a Исходный код | |
| Foldable (K1 i c :: Type -> Type) | Since: base-4.9.0.0 |
Определено в Data.Foldable Методыfold :: Monoid m => K1 i c m -> m Источник foldMap :: Monoid m => (a -> m) -> K1 i c a -> m Источник foldMap' :: Monoid m => (a -> m) -> K1 i c a -> m Источник foldr :: (a -> b -> b) -> b -> K1 i c a -> b Источник foldr' :: (a -> b -> b) -> b -> K1 i c a -> b Источник foldl :: (b -> a -> b) -> b -> K1 i c a -> b Источник foldl' :: (b -> a -> b) -> b -> K1 i c a -> b Источник foldr1 :: (a -> a -> a) -> K1 i c a -> a Источник foldl1 :: (a -> a -> a) -> K1 i c a -> a Источник toList :: K1 i c a -> [a] Источник null :: K1 i c a -> Bool Источник length :: K1 i c a -> Int Источник elem :: Eq a => a -> K1 i c a -> Bool Источник maximum :: Ord a => K1 i c a -> a Источник minimum :: Ord a => K1 i c a -> a Источник | |
| (Foldable f, Foldable g) => Foldable (f :+: g) | С момента: base-4.9.0.0 |
Определено в Data.Foldable Методыfold :: Monoid m => (f :+: g) m -> m Источник foldMap :: Monoid m => (a -> m) -> (f :+: g) a -> m Источник foldMap' :: Monoid m => (a -> m) -> (f :+: g) a -> m Источник foldr :: (a -> b -> b) -> b -> (f :+: g) a -> b Источник foldr' :: (a -> b -> b) -> b -> (f :+: g) a -> b Источник foldl :: (b -> a -> b) -> b -> (f :+: g) a -> b Источник foldl' :: (b -> a -> b) -> b -> (f :+: g) a -> b Источник foldr1 :: (a -> a -> a) -> (f :+: g) a -> a Источник foldl1 :: (a -> a -> a) -> (f :+: g) a -> a Источник toList :: (f :+: g) a -> [a] Источник null :: (f :+: g) a -> Bool Источник length :: (f :+: g) a -> Int Источник elem :: Eq a => a -> (f :+: g) a -> Bool Источник maximum :: Ord a => (f :+: g) a -> a Источник minimum :: Ord a => (f :+: g) a -> a Источник | |
| (Foldable f, Foldable g) => Foldable (f :*: g) | Since: base-4.9.0.0 |
Определено в Data.Foldable Методыfold :: Monoid m => (f :*: g) m -> m Исходный код foldMap :: Monoid m => (a -> m) -> (f :*: g) a -> m Исходный код foldMap' :: Monoid m => (a -> m) -> (f :*: g) a -> m Исходный код foldr :: (a -> b -> b) -> b -> (f :*: g) a -> b Исходный код foldr' :: (a -> b -> b) -> b -> (f :*: g) a -> b Исходный код foldl :: (b -> a -> b) -> b -> (f :*: g) a -> b Исходный код foldl' :: (b -> a -> b) -> b -> (f :*: g) a -> b Исходный код foldr1 :: (a -> a -> a) -> (f :*: g) a -> a Исходный код foldl1 :: (a -> a -> a) -> (f :*: g) a -> a Исходный код toList :: (f :*: g) a -> [a] Исходный код null :: (f :*: g) a -> Boolean Исходный код length :: (f :*: g) a -> Целое Исходный код elem :: Eq a => a -> (f :*: g) a -> Boolean Исходный код maximum :: Ord a => (f :*: g) a -> a Исходный код minimum :: Ord a => (f :*: g) a -> a Исходный код sum :: Num a => (f :*: g) a -> a Исходный код product :: Num a => (f :*: g) a -> a Исходный код | |
| (Foldable f, Foldable g) => Foldable (Sum f g) | Since: base-4.9.0.0 |
Определено в Data.Functor.Sum Методыfold :: Monoid m => Sum f g m -> m Исходный код foldMap :: Monoid m => (a -> m) -> Sum f g a -> m Исходный код foldMap' :: Monoid m => (a -> m) -> Sum f g a -> m Исходный код foldr :: (a -> b -> b) -> b -> Sum f g a -> b Исходный код foldr' :: (a -> b -> b) -> b -> Sum f g a -> b Исходный код foldl :: (b -> a -> b) -> b -> Sum f g a -> b Исходный код foldl' :: (b -> a -> b) -> b -> Sum f g a -> b Исходный код foldr1 :: (a -> a -> a) -> Sum f g a -> a Исходный код foldl1 :: (a -> a -> a) -> Sum f g a -> a Исходный код toList :: Sum f g a -> [a] Исходный код null :: Sum f g a -> Bool Исходный код length :: Sum f g a -> Int Исходный код elem :: Eq a => a -> Sum f g a -> Bool Исходный код maximum :: Ord a => Sum f g a -> a Исходный код minimum :: Ord a => Sum f g a -> a Исходный код sum :: Num a => Sum f g a -> a Исходный код product :: Num a => Sum f g a -> a Исходный код | |
| (Foldable f, Foldable g) => Foldable (Product f g) | С момента: base-4.9.0.0 |
Определено в Data.Functor.Product Методыfold :: Monoid m => Product f g m -> m Источник foldMap :: Monoid m => (a -> m) -> Product f g a -> m Источник foldMap' :: Monoid m => (a -> m) -> Product f g a -> m Источник foldr :: (a -> b -> b) -> b -> Product f g a -> b Источник foldr' :: (a -> b -> b) -> b -> Product f g a -> b Источник foldl :: (b -> a -> b) -> b -> Product f g a -> b Источник foldl' :: (b -> a -> b) -> b -> Product f g a -> b Источник foldr1 :: (a -> a -> a) -> Product f g a -> a Источник foldl1 :: (a -> a -> a) -> Product f g a -> a Источник toList :: Product f g a -> [a] Источник null :: Product f g a -> Булево Источник length :: Product f g a -> Целое Источник elem :: Eq a => a -> Product f g a -> Булево Источник maximum :: Ord a => Product f g a -> a Источник minimum :: Ord a => Product f g a -> a Источник | |
| Foldable f => Foldable (M1 i c f) | Since: base-4.9.0.0 |
Определено в Data.Foldable Методыfold :: Моноид m => M1 i c f m -> m Исходный код foldMap :: Моноид m => (a -> m) -> M1 i c f a -> m Исходный код foldMap' :: Моноид m => (a -> m) -> M1 i c f a -> m Исходный код foldr :: (a -> b -> b) -> b -> M1 i c f a -> b Исходный код foldr' :: (a -> b -> b) -> b -> M1 i c f a -> b Исходный код foldl :: (b -> a -> b) -> b -> M1 i c f a -> b Исходный код foldl' :: (b -> a -> b) -> b -> M1 i c f a -> b Исходный код foldr1 :: (a -> a -> a) -> M1 i c f a -> a Исходный код foldl1 :: (a -> a -> a) -> M1 i c f a -> a Исходный код toList :: M1 i c f a -> [a] Исходный код null :: M1 i c f a -> Булево Исходный код length :: M1 i c f a -> Целое Исходный код elem :: Eq a => a -> M1 i c f a -> Булево Исходный код maximum :: Ord a => M1 i c f a -> a Исходный код minimum :: Ord a => M1 i c f a -> a Исходный код sum :: Число a => M1 i c f a -> a Исходный код product :: Число a => M1 i c f a -> a Исходный код | |
| (Foldable f, Foldable g) => Foldable (f :.: g) | С тех пор как: base-4.9.0.0 |
Определено в Data.Foldable Методыfold :: Моноид m => (f :.: g) m -> m Исходный код foldMap :: Моноид m => (a -> m) -> (f :.: g) a -> m Исходный код foldMap' :: Моноид m => (a -> m) -> (f :.: g) a -> m Исходный код foldr :: (a -> b -> b) -> b -> (f :.: g) a -> b Исходный код foldr' :: (a -> b -> b) -> b -> (f :.: g) a -> b Исходный код foldl :: (b -> a -> b) -> b -> (f :.: g) a -> b Исходный код foldl' :: (b -> a -> b) -> b -> (f :.: g) a -> b Исходный код foldr1 :: (a -> a -> a) -> (f :.: g) a -> a Исходный код foldl1 :: (a -> a -> a) -> (f :.: g) a -> a Исходный код toList :: (f :.: g) a -> [a] Исходный код null :: (f :.: g) a -> Булево Исходный код length :: (f :.: g) a -> Целое Исходный код elem :: Eq a => a -> (f :.: g) a -> Булево Исходный код maximum :: Ord a => (f :.: g) a -> a Исходный код minimum :: Ord a => (f :.: g) a -> a Исходный код sum :: Число a => (f :.: g) a -> a Исходный код product :: Число a => (f :.: g) a -> a Исходный код | |
| (Foldable f, Foldable g) => Foldable (Compose f g) | С момента: base-4.9.0.0 |
Определено в Data.Functor.Compose Методыfold :: Monoid m => Compose f g m -> m Источник foldMap :: Monoid m => (a -> m) -> Compose f g a -> m Источник foldMap' :: Monoid m => (a -> m) -> Compose f g a -> m Источник foldr :: (a -> b -> b) -> b -> Compose f g a -> b Источник foldr' :: (a -> b -> b) -> b -> Compose f g a -> b Источник foldl :: (b -> a -> b) -> b -> Compose f g a -> b Источник foldl' :: (b -> a -> b) -> b -> Compose f g a -> b Источник foldr1 :: (a -> a -> a) -> Compose f g a -> a Источник foldl1 :: (a -> a -> a) -> Compose f g a -> a Источник toList :: Compose f g a -> [a] Источник null :: Compose f g a -> Bool Источник length :: Compose f g a -> Int Источник elem :: Eq a => a -> Compose f g a -> Bool Источник maximum :: Ord a => Compose f g a -> a Источник minimum :: Ord a => Compose f g a -> a Источник | |
Специальные смещённые свертки
foldrM :: (Foldable t, Monad m) => (a -> b -> m b) -> b -> t a -> m b Источник
Монадная свертка над элементами структуры, ассоциирующаяся справа, т. е. справа налево.
foldlM :: (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m b Источник
Монадная свертка над элементами структуры, ассоциирующаяся слева, т. е. слева направо.
Свертки действий
Действия прикладного
traverse_ :: (Foldable t, Applicative f) => (a -> f b) -> t a -> f () Источник
Применяет к каждому элементу структуры действие, вычисляет эти действия слева направо и игнорирует результаты. Для версии, которая не игнорирует результаты, см. traverse.
for_ :: (Foldable t, Applicative f) => t a -> (a -> f b) -> f () Источник
for_ это traverse_ с переставленными аргументами. Для версии, которая не игнорирует результаты, см. for.
>>> for_ [1..4] print 1 2 3 4
sequenceA_ :: (Foldable t, Applicative f) => t (f a) -> f () Источник
Вычисляет каждое действие в структуре слева направо и игнорирует результаты. Для версии, которая не игнорирует результаты, см. sequenceA.
asum :: (Foldable t, Alternative f) => t (f a) -> f a Источник
Сумма коллекции действий, обобщающая concat.
>>> asum [Just "Hello", Nothing, Just "World"] Just "Hello"
Монадные действия
mapM_ :: (Foldable t, Monad m) => (a -> m b) -> t a -> m () Источник
Применяет к каждому элементу структуры монадическое действие, вычисляет эти действия слева направо и игнорирует результаты. Для версии, которая не игнорирует результаты, см. mapM.
Начиная с версии base 4.8.0.0, mapM_ это просто traverse_, специализированная для Monad.
forM_ :: (Foldable t, Monad m) => t a -> (a -> m b) -> m () Источник
forM_ это mapM_ с переставленными аргументами. Для версии, которая не игнорирует результаты, см. forM.
Начиная с версии base 4.8.0.0, forM_ это просто for_, специализированная для Monad.
sequence_ :: (Foldable t, Monad m) => t (m a) -> m () Источник
Вычислить каждый монадический оператор в структуре слева направо и проигнорировать результаты. Для версии, которая не игнорирует результаты, см. sequence.
Начиная с версии base 4.8.0.0, sequence_ просто sequenceA_, специализированный для Monad.
msum :: (Foldable t, MonadPlus m) => t (m a) -> m a Source
Сумма набора операций, обобщающая concat. Начиная с версии base 4.8.0.0, msum просто asum, специализированный для MonadPlus.
Специализированные свертки
concat :: Foldable t => t [a] -> [a] Source
Конкатенация всех элементов контейнера списков.
concatMap :: Foldable t => (a -> [b]) -> t a -> [b] Source
Применить функцию ко всем элементам контейнера и конкатенировать полученные списки.
and :: Foldable t => t Bool -> Bool Source
and возвращает конъюнкцию контейнера значений типа Bool. Для получения результата True, контейнер должен быть конечным; False, однако, результат получается из значения False на конечном расстоянии слева.
or :: Foldable t => t Bool -> Bool Source
or возвращает дизъюнкцию контейнера значений типа Bool. Для получения результата False, контейнер должен быть конечным; True, однако, результат получается из значения True на конечном расстоянии слева.
any :: Foldable t => (a -> Bool) -> t a -> Bool Source
Определяет, удовлетворяет ли какой-либо элемент структуры предикату.
all :: Foldable t => (a -> Bool) -> t a -> Bool Source
Определяет, удовлетворяют ли все элементы структуры предикату.
maximumBy :: Foldable t => (a -> a -> Ordering) -> t a -> a Source
Наибольший элемент непустой структуры относительно заданной функции сравнения.
minimumBy :: Foldable t => (a -> a -> Ordering) -> t a -> a Source
Наименьший элемент непустой структуры относительно заданной функции сравнения.
Поиск
notElem :: (Foldable t, Eq a) => a -> t a -> Bool infix 4 Source
find :: Foldable t => (a -> Bool) -> t a -> Maybe a Source
Функция find принимает предикат и структуру и возвращает самый левый элемент структуры, соответствующий предикату, или Nothing, если такого элемента нет.
© 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/Data-Foldable.html