Spec-Zone.ru › Haskell 9

Data.Foldable1

Авторские права Edward Kmett Oleg Grenrus
Лицензия BSD-3-Clause
Безопасный Haskell Trustworthy
Язык Haskell2010

Описание

Класс непустых структур данных, которые можно свести к итоговому значению.

С версии: base-4.18.0.0

class Foldable t => Foldable1 (t :: Type -> Type) where Источник

Непустые структуры данных, которые можно сворачивать.

С версии: base-4.18.0.0

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

foldMap1 | foldrMap1

Методы

fold1 :: Semigroup m => t m -> m Источник

Для структуры с элементами типа Semigroup объединяет их с помощью оператора (<>) полугруппы. Это свёртка с ассоциативностью справа, ленивая по аккумулятору. Если нужна строгая свёртка с ассоциативностью слева, используйте вместо неё foldMap1', передав в качестве отображения id.

С версии: base-4.18.0.0

foldMap1 :: Semigroup m => (a -> m) -> t a -> m Источник

Отображает каждый элемент структуры в полугруппу и объединяет результаты с помощью (<>). Это свёртка с ассоциативностью справа, ленивая по аккумулятору. Для строгих свёрток с ассоциативностью слева используйте вместо неё foldMap1'.

>>> foldMap1 (:[]) (1 :| [2, 3, 4])
[1,2,3,4]

С версии: base-4.18.0.0

foldMap1' :: Semigroup m => (a -> m) -> t a -> m Источник

Вариант foldMap1 с ассоциативностью слева, строгий по аккумулятору. Используйте его для строгого свёртывания, когда частичные результаты объединяются с помощью (<>).

>>> foldMap1' Sum (1 :| [2, 3, 4])
Sum {getSum = 10}

С версии: base-4.18.0.0

toNonEmpty :: t a -> NonEmpty a Источник

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

>>> toNonEmpty (Identity 2)
2 :| []

С версии: base-4.18.0.0

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

Наибольший элемент непустой структуры. Эта функция эквивалентна foldr1 max, а её поведение для структур с несколькими наибольшими элементами зависит от соответствующей реализации max. В стандартной реализации max (max x y = if x <= y then y else x) для разрешения равенства используется порядок элементов структуры: если наибольших элементов несколько, выбирается самый правый (это эквивалентно maximumBy compare).

>>> maximum (32 :| [64, 8, 128, 16])
128

С версии: base-4.18.0.0

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

Наименьший элемент непустой структуры. Эта функция эквивалентна foldr1 min, а её поведение для структур с несколькими наибольшими элементами зависит от соответствующей реализации min. В стандартной реализации min (min x y = if x <= y then x else y) для разрешения равенства используется порядок элементов структуры: если наименьших элементов несколько, выбирается самый левый (это эквивалентно minimumBy compare).

>>> minimum (32 :| [64, 8, 128, 16])
8

С версии: base-4.18.0.0

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

Первый элемент непустой структуры.

>>> head (1 :| [2, 3, 4])
1

С версии: base-4.18.0.0

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

Последний элемент непустой структуры.

>>> last (1 :| [2, 3, 4])
4

С версии: base-4.18.0.0

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

Свёртка структуры с ассоциативностью справа, ленивая по аккумулятору.

Для NonEmpty списков функция foldrMap1, получив функцию f, бинарный оператор g и список, сворачивает список с помощью g справа налево, применяя f к самому правому элементу:

foldrMap1 f g (x1 :| [x2, ..., xn1, xn]) == x1 `g` (x2 `g` ... (xn1 `g` (f xn))...)

Обратите внимание: поскольку начало результирующего выражения получается применением g к первому элементу списка, если g ленив по своему правому аргументу, foldrMap1 может получить завершающееся выражение из неограниченного списка.

Для структуры Foldable1 общего вида это должно быть семантически идентично:

foldrMap1 f g = foldrMap1 f g . toNonEmpty

С версии: base-4.18.0.0

foldlMap1' :: (a -> b) -> (b -> a -> b) -> t a -> b Источник

Свёртка структуры с ассоциативностью слева, при этом оператор применяется строго.

Это гарантирует, что перед применением каждый шаг свёртки приводится к слабой головной нормальной форме (Weak Head Normal Form), предотвращая накопление отложенных вычислений. Такой подход часто нужен, чтобы строго свернуть конечную структуру в один строгий результат.

Для структуры Foldable1 общего вида это должно быть семантически идентично:

foldlMap1' f z = foldlMap1' f z . toNonEmpty

С версии: base-4.18.0.0

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

Свёртка структуры с ассоциативностью слева, ленивая по аккумулятору. Обычно это не то, что вам нужно, но она может хорошо работать со структурами, обеспечивающими эффективный обход справа налево, и оператором, ленивым по левому аргументу.

Для NonEmpty списков функция foldlMap1, получив функцию f, бинарный оператор g и список, сворачивает список с помощью g слева направо, применяя f к самому левому элементу:

foldlMap1 f g (x1 :| [x2, ..., xn]) == (...(((f x1) `g` x2) `g`...) `g` xn

Обратите внимание: чтобы получить внешнее применение оператора, необходимо обойти весь входной список. Это означает, что foldlMap1 не завершится при передаче бесконечного списка.

Если вам нужна эффективная строгая свёртка слева, вероятно, следует использовать foldlMap1' вместо foldlMap1. Причина в том, что последняя не вычисляет внутренние результаты (например, (f x1) `g` x2 в приведённом выше примере) перед их передачей оператору (например, (`g` x3)). В результате образуется цепочка отложенных вычислений длиной в \(O(n)\) элементов, которую затем необходимо вычислять снаружи внутрь.

Для структуры Foldable1 общего вида это должно быть семантически идентично:

foldlMap1 f g = foldlMap1 f g . toNonEmpty

С версии: base-4.18.0.0

foldrMap1' :: (a -> b) -> (a -> b -> b) -> t a -> b Источник

foldrMap1' — вариант foldrMap1, который выполняет строгое свёртывание справа налево, то есть начиная с самого правого элемента. Входная структура должна быть конечной, иначе foldrMap1' исчерпает память (не завершится).

Для строгой свёртки справа с постоянным использованием памяти нужна структура, которая обеспечивает доступ к самому правому элементу быстрее, чем за \(O(n)\).

Этот метод не использует постоянное количество памяти для таких структур, как NonEmpty списки, которые не поддерживают эффективный обход справа налево и поэтому требуют \(O(n)\) памяти для свёртки справа налево. Использование этого метода с такой структурой указывает на то, что выбранная структура может плохо подходить для данной задачи. Если порядок объединения элементов не важен, используйте вместо него foldlMap1'.

С версии: base-4.18.0.0

Экземпляры
Подробности об экземплярах
Foldable1 Complex Исходный код

С версии: base-4.18.0.0

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

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

Методы

fold1 :: Semigroup m => Complex m -> m Исходный код

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

foldMap1' :: Semigroup m => (a -> m) -> Complex a -> m Исходный код

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

maximum :: Ord a => Complex a -> a Исходный код

minimum :: Ord a => Complex a -> a Исходный код

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

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

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

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

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

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

Foldable1 First Исходный код

С версии: base-4.18.0.0

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

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

Методы

fold1 :: Semigroup m => First m -> m Исходный код

foldMap1 :: Semigroup m => (a -> m) -> First a -> m Исходный код

foldMap1' :: Semigroup m => (a -> m) -> First a -> m Исходный код

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

maximum :: Ord a => First a -> a Исходный код

minimum :: Ord a => First a -> a Исходный код

head :: First a -> a Исходный код

last :: First a -> a Исходный код

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

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

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

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

Foldable1 Last Исходный код

С версии: base-4.18.0.0

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

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

Методы

fold1 :: Semigroup m => Last m -> m Исходный код

foldMap1 :: Semigroup m => (a -> m) -> Last a -> m Исходный код

foldMap1' :: Semigroup m => (a -> m) -> Last a -> m Исходный код

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

maximum :: Ord a => Last a -> a Исходный код

minimum :: Ord a => Last a -> a Исходный код

head :: Last a -> a Исходный код

last :: Last a -> a Исходный код

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

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

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

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

Foldable1 Max Исходный код

С версии: base-4.18.0.0

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

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

Методы

fold1 :: Semigroup m => Max m -> m Исходный код

foldMap1 :: Semigroup m => (a -> m) -> Max a -> m Исходный код

foldMap1' :: Semigroup m => (a -> m) -> Max a -> m Исходный код

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

maximum :: Ord a => Max a -> a Исходный код

minimum :: Ord a => Max a -> a Исходный код

head :: Max a -> a Исходный код

last :: Max a -> a Исходный код

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

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

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

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

Foldable1 Min Исходный код

С версии: base-4.18.0.0

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

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

Методы

fold1 :: Semigroup m => Min m -> m Исходный код

foldMap1 :: Semigroup m => (a -> m) -> Min a -> m Исходный код

foldMap1' :: Semigroup m => (a -> m) -> Min a -> m Исходный код

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

maximum :: Ord a => Min a -> a Исходный код

minimum :: Ord a => Min a -> a Исходный код

head :: Min a -> a Исходный код

last :: Min a -> a Исходный код

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

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

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

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

Foldable1 NonEmpty Исходный код

С версии: base-4.18.0.0

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

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

Методы

fold1 :: Semigroup m => NonEmpty m -> m Исходный код

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

foldMap1' :: Semigroup m => (a -> m) -> NonEmpty a -> m Исходный код

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

maximum :: Ord a => NonEmpty a -> a Исходный код

minimum :: Ord a => NonEmpty a -> a Исходный код

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

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

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

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

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

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

Foldable1 Identity Исходный код

С версии: base-4.18.0.0

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

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

Методы

fold1 :: Semigroup m => Identity m -> m Исходный код

foldMap1 :: Semigroup m => (a -> m) -> Identity a -> m Исходный код

foldMap1' :: Semigroup m => (a -> m) -> Identity a -> m Исходный код

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

maximum :: Ord a => Identity a -> a Исходный код

minimum :: Ord a => Identity a -> a Исходный код

head :: Identity a -> a Исходный код

last :: Identity a -> a Исходный код

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

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

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

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

Foldable1 Down Исходный код

Начиная с: base-4.18.0.0

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

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

Методы

fold1 :: Semigroup m => Down m -> m Исходный код

foldMap1 :: Semigroup m => (a -> m) -> Down a -> m Исходный код

foldMap1' :: Semigroup m => (a -> m) -> Down a -> m Исходный код

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

maximum :: Ord a => Down a -> a Исходный код

minimum :: Ord a => Down a -> a Исходный код

head :: Down a -> a Исходный код

last :: Down a -> a Исходный код

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

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

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

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

Foldable1 Dual Исходный код

Начиная с: base-4.18.0.0

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

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

Методы

fold1 :: Semigroup m => Dual m -> m Исходный код

foldMap1 :: Semigroup m => (a -> m) -> Dual a -> m Исходный код

foldMap1' :: Semigroup m => (a -> m) -> Dual a -> m Исходный код

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

maximum :: Ord a => Dual a -> a Исходный код

minimum :: Ord a => Dual a -> a Исходный код

head :: Dual a -> a Исходный код

last :: Dual a -> a Исходный код

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

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

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

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

Foldable1 Product Исходный код

Начиная с: base-4.18.0.0

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

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

Методы

fold1 :: Semigroup m => Product m -> m Исходный код

foldMap1 :: Semigroup m => (a -> m) -> Product a -> m Исходный код

foldMap1' :: Semigroup m => (a -> m) -> Product a -> m Исходный код

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

maximum :: Ord a => Product a -> a Исходный код

minimum :: Ord a => Product a -> a Исходный код

head :: Product a -> a Исходный код

last :: Product a -> a Исходный код

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

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

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

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

Foldable1 Sum Исходный код

Начиная с: base-4.18.0.0

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

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

Методы

fold1 :: Semigroup m => Sum m -> m Исходный код

foldMap1 :: Semigroup m => (a -> m) -> Sum a -> m Исходный код

foldMap1' :: Semigroup m => (a -> m) -> Sum a -> m Исходный код

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

maximum :: Ord a => Sum a -> a Исходный код

minimum :: Ord a => Sum a -> a Исходный код

head :: Sum a -> a Исходный код

last :: Sum a -> a Исходный код

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

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

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

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

Foldable1 Par1 Исходный код

Начиная с: base-4.18.0.0

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

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

Методы

fold1 :: Semigroup m => Par1 m -> m Исходный код

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

foldMap1' :: Semigroup m => (a -> m) -> Par1 a -> m Исходный код

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

maximum :: Ord a => Par1 a -> a Исходный код

minimum :: Ord a => Par1 a -> a Исходный код

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

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

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

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

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

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

Foldable1 Solo Исходный код

Начиная с: base-4.18.0.0

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

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

Методы

fold1 :: Semigroup m => Solo m -> m Исходный код

foldMap1 :: Semigroup m => (a -> m) -> Solo a -> m Исходный код

foldMap1' :: Semigroup m => (a -> m) -> Solo a -> m Исходный код

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

maximum :: Ord a => Solo a -> a Исходный код

minimum :: Ord a => Solo a -> a Исходный код

head :: Solo a -> a Исходный код

last :: Solo a -> a Исходный код

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

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

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

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

Foldable1 (V1 :: Type -> Type) Исходный код

С версии: base-4.18.0.0

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

Определён в Data.Foldable1

Методы

fold1 :: Semigroup m => V1 m -> m Исходный код

foldMap1 :: Semigroup m => (a -> m) -> V1 a -> m Исходный код

foldMap1' :: Semigroup m => (a -> m) -> V1 a -> m Исходный код

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

maximum :: Ord a => V1 a -> a Исходный код

minimum :: Ord a => V1 a -> a Исходный код

head :: V1 a -> a Исходный код

last :: V1 a -> a Исходный код

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

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

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

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

Foldable1 ((,) a) Исходный код

С версии: base-4.18.0.0

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

Определён в Data.Foldable1

Методы

fold1 :: Semigroup m => (a, m) -> m Исходный код

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

foldMap1' :: Semigroup m => (a0 -> m) -> (a, a0) -> m Исходный код

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

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

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

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

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

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

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

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

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

Foldable1 f => Foldable1 (Ap f) Исходный код

С версии: base-4.18.0.0

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

Определён в Data.Foldable1

Методы

fold1 :: Semigroup m => Ap f m -> m Исходный код

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

foldMap1' :: Semigroup m => (a -> m) -> Ap f a -> m Исходный код

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

maximum :: Ord a => Ap f a -> a Исходный код

minimum :: Ord a => Ap f a -> a Исходный код

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

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

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

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

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

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

Foldable1 f => Foldable1 (Alt f) Исходный код

С версии: base-4.18.0.0

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

Определён в Data.Foldable1

Методы

fold1 :: Semigroup m => Alt f m -> m Исходный код

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

foldMap1' :: Semigroup m => (a -> m) -> Alt f a -> m Исходный код

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

maximum :: Ord a => Alt f a -> a Исходный код

minimum :: Ord a => Alt f a -> a Исходный код

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

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

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

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

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

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

Foldable1 f => Foldable1 (Rec1 f) Исходный код

С версии: base-4.18.0.0

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

Определён в Data.Foldable1

Методы

fold1 :: Semigroup m => Rec1 f m -> m Исходный код

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

foldMap1' :: Semigroup m => (a -> m) -> Rec1 f a -> m Исходный код

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

maximum :: Ord a => Rec1 f a -> a Исходный код

minimum :: Ord a => Rec1 f a -> a Исходный код

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

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

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

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

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

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

(Foldable1 f, Foldable1 g) => Foldable1 (Product f g) Исходный код

Достаточно, чтобы одна из половин произведения была Foldable1. Другая может быть Foldable.

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

Определён в Data.Foldable1

Методы

fold1 :: Semigroup m => Product f g m -> m Исходный код

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

foldMap1' :: Semigroup m => (a -> m) -> Product f g a -> m Исходный код

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

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

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

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

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

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

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

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

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

(Foldable1 f, Foldable1 g) => Foldable1 (Sum f g) Исходный код

С версии: base-4.18.0.0

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

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

Методы

fold1 :: Semigroup m => Sum f g m -> m Исходный код

foldMap1 :: Semigroup m => (a -> m) -> Sum f g a -> m Исходный код

foldMap1' :: Semigroup m => (a -> m) -> Sum f g a -> m Исходный код

toNonEmpty :: Sum f g a -> NonEmpty a Исходный код

maximum :: Ord a => Sum f g a -> a Исходный код

minimum :: Ord a => Sum f g a -> a Исходный код

head :: Sum f g a -> a Исходный код

last :: Sum f g a -> a Исходный код

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

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

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

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

(Foldable1 f, Foldable1 g) => Foldable1 (f :*: g) Исходный код

Начиная с: base-4.18.0.0

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

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

Методы

fold1 :: Semigroup m => (f :*: g) m -> m Исходный код

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

foldMap1' :: Semigroup m => (a -> m) -> (f :*: g) a -> m Исходный код

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

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

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

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

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

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

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

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

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

(Foldable1 f, Foldable1 g) => Foldable1 (f :+: g) Исходный код

Начиная с: base-4.18.0.0

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

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

Методы

fold1 :: Semigroup m => (f :+: g) m -> m Исходный код

foldMap1 :: Semigroup m => (a -> m) -> (f :+: g) a -> m Исходный код

foldMap1' :: Semigroup m => (a -> m) -> (f :+: g) a -> m Исходный код

toNonEmpty :: (f :+: g) a -> NonEmpty a Исходный код

maximum :: Ord a => (f :+: g) a -> a Исходный код

minimum :: Ord a => (f :+: g) a -> a Исходный код

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

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

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

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

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

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

(Foldable1 f, Foldable1 g) => Foldable1 (Compose f g) Исходный код

Начиная с: base-4.18.0.0

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

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

Методы

fold1 :: Semigroup m => Compose f g m -> m Исходный код

foldMap1 :: Semigroup m => (a -> m) -> Compose f g a -> m Исходный код

foldMap1' :: Semigroup m => (a -> m) -> Compose f g a -> m Исходный код

toNonEmpty :: Compose f g a -> NonEmpty a Исходный код

maximum :: Ord a => Compose f g a -> a Исходный код

minimum :: Ord a => Compose f g a -> a Исходный код

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

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

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

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

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

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

(Foldable1 f, Foldable1 g) => Foldable1 (f :.: g) Исходный код

Начиная с: base-4.18.0.0

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

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

Методы

fold1 :: Semigroup m => (f :.: g) m -> m Исходный код

foldMap1 :: Semigroup m => (a -> m) -> (f :.: g) a -> m Исходный код

foldMap1' :: Semigroup m => (a -> m) -> (f :.: g) a -> m Исходный код

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

maximum :: Ord a => (f :.: g) a -> a Исходный код

minimum :: Ord a => (f :.: g) a -> a Исходный код

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

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

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

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

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

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

Foldable1 f => Foldable1 (M1 i c f) Исходный код

Начиная с: base-4.18.0.0

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

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

Методы

fold1 :: Semigroup m => M1 i c f m -> m Исходный код

foldMap1 :: Semigroup m => (a -> m) -> M1 i c f a -> m Исходный код

foldMap1' :: Semigroup m => (a -> m) -> M1 i c f a -> m Исходный код

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

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

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

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

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

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

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

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

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

foldr1 :: Foldable1 t => (a -> a -> a) -> t a -> a Исходный код

Вариант foldrMap1, в котором крайний правый элемент отображается в себя.

Начиная с: base-4.18.0.0

foldr1' :: Foldable1 t => (a -> a -> a) -> t a -> a Исходный код

Вариант foldrMap1', в котором крайний правый элемент отображается в себя.

Начиная с: base-4.18.0.0

foldl1 :: Foldable1 t => (a -> a -> a) -> t a -> a Исходный код

Вариант foldlMap1, в котором крайний левый элемент отображается в себя.

Начиная с: base-4.18.0.0

foldl1' :: Foldable1 t => (a -> a -> a) -> t a -> a Исходный код

Вариант foldlMap1', в котором крайний левый элемент отображается в себя.

Начиная с: base-4.18.0.0

intercalate1 :: (Foldable1 t, Semigroup m) => m -> t m -> m Исходный код

Вставляет m между каждой парой t m.

>>> intercalate1 ", " $ "hello" :| ["how", "are", "you"]
"hello, how, are, you"
>>> intercalate1 ", " $ "hello" :| []
"hello"
>>> intercalate1 mempty $ "I" :| ["Am", "Fine", "You?"]
"IAmFineYou?"

Начиная с: base-4.18.0.0

foldrM1 :: (Foldable1 t, Monad m) => (a -> a -> m a) -> t a -> m a Исходный код

Монадический свёрточный проход по элементам непустой структуры с ассоциированием вправо, то есть справа налево.

Начиная с: base-4.18.0.0

foldlM1 :: (Foldable1 t, Monad m) => (a -> a -> m a) -> t a -> m a Исходный код

Монадический свёрточный проход по элементам непустой структуры с ассоциированием влево, то есть слева направо.

Начиная с: base-4.18.0.0

foldrMapM1 :: (Foldable1 t, Monad m) => (a -> m b) -> (a -> b -> m b) -> t a -> m b Исходный код

Вариант foldrM1 с отображением.

Начиная с: base-4.18.0.0

foldlMapM1 :: (Foldable1 t, Monad m) => (a -> m b) -> (b -> a -> m b) -> t a -> m b Исходный код

Вариант foldlM1 с отображением.

Начиная с: base-4.18.0.0

maximumBy :: Foldable1 t => (a -> a -> Ordering) -> t a -> a Исходный код

Наибольший элемент непустой структуры согласно заданной функции сравнения. При равенстве используется порядок элементов в структуре: если наибольших элементов несколько, выбирается самый правый из них.

Начиная с: base-4.18.0.0

minimumBy :: Foldable1 t => (a -> a -> Ordering) -> t a -> a Исходный код

Наименьший элемент непустой структуры согласно заданной функции сравнения. При равенстве используется порядок элементов в структуре: если наименьших элементов несколько, выбирается самый левый из них.

Начиная с: base-4.18.0.0

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.14.1/docs/libraries/base-4.22.0.0-66f8/Data-Foldable1.html

Spec-Zone.ru

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