Spec-Zone.ru › Haskell 8

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

Содержание

  • Специальные смещённые свёртки
  • Свёртки действий
    • Действия аппликативной категории
    • Монадные действия
  • Специализированные свёртки
  • Поиски

Описание

Класс структур данных, которые могут быть свёрнуты в сводное значение.

class Foldable t where Source

Структуры данных, которые могут быть свёрнуты.

Например, задан тип данных

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)

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

foldMap | foldr

Методы

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

toList :: t a -> [a] Source

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

С: base-4.8.0.0

null :: t a -> Bool Source

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

С: base-4.8.0.0

length :: t a -> Int Source

Возвращает размер/длину конечной структуры в качестве 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 Источник

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

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

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

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

maximum :: Ord a => [a] -> a Источник

minimum :: Ord a => [a] -> a Источник

sum :: Num a => [a] -> a Источник

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

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

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

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

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

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

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

Foldable Product

Since: base-4.8.0.0

Instance details

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

sum :: Num a => Product a -> a Source

product :: Num a => Product a -> a Source

Foldable Sum

Since: base-4.8.0.0

Instance details

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

toList :: Sum a -> [a] Source

null :: Sum a -> Bool Source

length :: Sum a -> Int Source

elem :: Eq a => a -> Sum a -> Bool Source

maximum :: Ord a => Sum a -> a Source

minimum :: Ord a => Sum a -> a Source

sum :: Num a => Sum a -> a Source

product :: Num 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

null :: Dual a -> Bool 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

sum :: Num a => Dual a -> a Source

product :: Num 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

null :: Last a -> Bool 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

sum :: Num a => Last a -> a Source

product :: Num 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

sum :: Num a => Option a -> a Source

product :: Num 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

null :: Last a -> Bool 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

sum :: Num a => Last a -> a Source

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

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

product :: Num 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

toList :: Max a -> [a] Source

null :: Max a -> Bool Source

length :: Max a -> Int Source

elem :: Eq a => a -> Max a -> Bool Source

maximum :: Ord a => Max a -> a Source

minimum :: Ord a => Max a -> a Source

sum :: Num a => Max a -> a Source

product :: Num 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

toList :: Min a -> [a] Source

null :: Min a -> Bool Source

length :: Min a -> Int Source

elem :: Eq a => a -> Min a -> Bool Source

maximum :: Ord a => Min a -> a Source

minimum :: Ord a => Min a -> a Source

sum :: Num a => Min a -> a Source

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

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

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

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

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

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

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

product :: Num 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

toList :: U1 a -> [a] Source

null :: U1 a -> Bool Source

length :: U1 a -> Int Source

elem :: Eq a => a -> U1 a -> Bool Source

maximum :: Ord a => U1 a -> a Source

minimum :: Ord a => U1 a -> a Source

sum :: Num a => U1 a -> a Source

product :: Num 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

sum :: Num a => UAddr a -> a Source

product :: Num 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

sum :: Num a => UDouble a -> a Source

product :: Num 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

sum :: Num a => UFloat a -> a Source

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

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

product :: Num 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

sum :: Num a => UWord a -> a Source

product :: Num 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

sum :: Num a0 => (a, a0) -> a0 Source

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

sum :: Num a => Array i a -> a Источник

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

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

product :: Num 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

Instance details

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

sum :: Num a => Alt f a -> a Source

product :: Num a => Alt f a -> a Source

Foldable f => Foldable (Ap f)

Since: base-4.12.0.0

Instance details

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

null :: Ap f a -> Bool 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

sum :: Num a => Ap f a -> a Source

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

sum :: Num a => K1 i c a -> a Источник

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

sum :: Num a => (f :+: g) a -> a Источник

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

sum :: Num a => Product f g a -> a Источник

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

sum :: Num a => Compose f g a -> a Источник

product :: Num 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

notElem — это отрицание elem.

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

Spec-Zone.ru

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