Spec-Zone.ru › Haskell 9

Data.Functor

Авторские права (c) Университет Глазго 2001
Лицензия BSD-стиль (см. файл libraries/base/LICENSE)
Поддержка libraries@haskell.org
Стабильность предварительная
Переносимость переносимая
Safe Haskell Безопасный
Язык Haskell2010

Описание

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

class Functor (f :: Type -> Type) where Исходный код

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

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

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

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

fmap

Методы

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

fmap используется для применения функции типа (a -> b) к значению типа f a, где f — фукнтор, чтобы получить значение типа f b. Обратите внимание, что для любого конструктора типов с более чем одним параметром (например, Either), только последний параметр типа может быть изменён с помощью fmap (например, b в `Either a b`).

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

Примеры
Развернуть

Преобразование из Maybe Int в Maybe String с помощью show:

>>> fmap show Nothing
Nothing
>>> fmap show (Just 3)
Just "3"

Преобразование из Either Int Int в Either Int String с помощью show:

>>> fmap show (Left 17)
Left 17
>>> fmap show (Right 17)
Right "17"

Удвоение каждого элемента списка:

>>> fmap (*2) [1,2,3]
[2,4,6]

Применение even ко второму элементу пары:

>>> fmap even (2,2)
(2,True)

Может показаться удивительным, что функция применяется только к последнему элементу кортежа по сравнению с примером со списком, где она применяется ко всем элементам списка. Чтобы понять это, помните, что кортежи являются конструкторами типов с несколькими параметрами типа: кортеж из 3 элементов (a,b,c) также может быть записан как (,,) a b c, и его экземпляр Functor определён для Functor ((,,) a b) (то есть только третий параметр может быть преобразован с помощью fmap).

Это объясняет, почему fmap может использоваться с кортежами, содержащими значения разных типов, как в следующем примере:

>>> fmap even ("hello", 1.0, 4)
("hello",1.0,True)

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

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

Примеры
Развернуть

Выполнение вычисления с Maybe и замена результата константным значением, если он равен Just:

>>> 'a' <$ Just 2
Just 'a'
>>> 'a' <$ Nothing
Nothing
Экземпляры
Подробности экземпляров
Functor Complex Source

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

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

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

Методы

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

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

Functor First Source

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

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

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

Методы

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

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

Functor Last Source

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

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

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

Методы

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

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

Functor Max Source

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

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

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

Методы

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

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

Functor Min Source

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

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

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

Методы

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

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

Functor ArgDescr Source

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

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

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

Методы

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

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

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

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

Методы

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

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

Functor STM Исходный код

С версии: base-4.3.0.0

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

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

Методы

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

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

Functor Handler Исходный код

С версии: base-4.6.0.0

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

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

Методы

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

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

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

С версии: base-4.8.0.0

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

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

Методы

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

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

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

С версии: base-4.8.0.0

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

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

Методы

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

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

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

С версии: base-4.8.0.0

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

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

Методы

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

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

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

С версии: base-4.11.0.0

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

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

Методы

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

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

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

С версии: base-4.8.0.0

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

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

Методы

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

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

Functor Произведение Источник

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

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

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

Методы

fmap :: (a -> b) -> Произведение a -> Произведение b Источник

(<$) :: a -> Произведение b -> Произведение a Источник

Functor Сумма Источник

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

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

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

Методы

fmap :: (a -> b) -> Сумма a -> Сумма b Источник

(<$) :: a -> Сумма b -> Сумма a Источник

Functor ZipList Источник

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

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

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

Методы

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

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

Functor NoIO Источник

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

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

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

Методы

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

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

Functor Par1 Источник

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

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

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

Методы

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

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

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

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

Методы

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

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

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

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

Методы

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

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

Functor P Источник

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

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

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

Методы

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

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

Functor ReadP Источник

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

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

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

Методы

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

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

Functor ReadPrec Источник

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

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

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

Методы

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

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

Functor IO Источник

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

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

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

Методы

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

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

Functor Maybe Источник

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

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

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

Методы

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

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

Functor Solo Источник

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

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

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

Методы

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

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

Functor [] Источник

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

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

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

Методы

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

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

Monad m => Functor (WrappedMonad m) Источник

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

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

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

Методы

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

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

Functor (Arg a) Источник

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

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

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

Методы

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

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

Functor (Array i) Исходный код

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

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

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

Методы

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

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

Arrow a => Functor (ArrowMonad a) Исходный код

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

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

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

Методы

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

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

Functor (ST s) Исходный код

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

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

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

Методы

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

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

Functor (Either a) Исходный код

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

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

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

Методы

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

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

Functor (StateL s) Исходный код

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

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

Определено в GHC.Internal.Data.Functor.Utils

Методы

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

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

Functor (StateR s) Исходный код

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

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

Определено в GHC.Internal.Data.Functor.Utils

Методы

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

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

Functor (Proxy :: Type -> Type) Source

Since: base-4.7.0.0

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

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

Методы

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

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

Functor (U1 :: Type -> Type) Source

Since: base-4.9.0.0

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

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

Методы

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

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

Functor (V1 :: Type -> Type) Source

Since: base-4.9.0.0

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

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

Методы

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

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

Functor (ST s) Source

Since: base-2.1

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

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

Методы

fmap :: (a -> b) -> ST s a -> ST s b Source

(<$) :: a -> ST s b -> ST s a Source

Functor ((,) a) Source

Since: base-2.1

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

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

Методы

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

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

Arrow a => Functor (WrappedArrow a b) Source

Since: base-2.1

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

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

Методы

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

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

Functor m => Functor (Kleisli m a) Source

Since: base-4.14.0.0

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

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

Методы

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

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

Functor (Const m :: Type -> Type) Source

Since: base-2.1

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

Определено в GHC.Internal.Data.Functor.Const

Методы

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

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

Monad m => Functor (StateT s m) Источник

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

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

Определено в GHC.Internal.Data.Functor.Utils

Методы

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

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

Functor f => Functor (Ap f) Источник

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

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

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

Методы

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

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

Functor f => Functor (Alt f) Источник

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

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

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

Методы

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

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

Functor f => Functor (Generically1 f) Источник

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

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

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

Методы

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

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

Functor f => Functor (Rec1 f) Источник

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

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

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

Методы

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

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

Functor (URec (Ptr ()) :: Type -> Type) Источник

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

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

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

Методы

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

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

Functor (URec Char :: Type -> Type) Source

Since: base-4.9.0.0

Подробности о реализации

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

Методы

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

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

Functor (URec Double :: Type -> Type) Source

Since: base-4.9.0.0

Подробности о реализации

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

Методы

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

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

Functor (URec Float :: Type -> Type) Source

Since: base-4.9.0.0

Подробности о реализации

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

Методы

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

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

Functor (URec Int :: Type -> Type) Source

Since: base-4.9.0.0

Подробности о реализации

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

Методы

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

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

Functor (URec Word :: Type -> Type) Source

Since: base-4.9.0.0

Подробности о реализации

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

Методы

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

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

Functor ((,,) a b) Source

Since: base-4.14.0.0

Подробности о реализации

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

Методы

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

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

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

Since: base-4.9.0.0

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

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

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

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

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

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

Since: base-4.9.0.0

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

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

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

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

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

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

Since: base-4.9.0.0

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

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

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

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

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

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

Since: base-4.9.0.0

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

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

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

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

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

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

Since: base-4.9.0.0

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

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

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

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

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

Functor ((,,,) a b c) Source

Since: base-4.14.0.0

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

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

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

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

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

Functor ((->) r) Source

Since: base-2.1

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

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

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

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

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

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

Since: base-4.9.0.0

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

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

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

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

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

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

Since: base-4.9.0.0

Instance details

Defined in GHC.Internal.Generics

Методы

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

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

Functor f => Functor (M1 i c f) Source

Since: base-4.9.0.0

Instance details

Defined in GHC.Internal.Generics

Методы

fmap :: (a -> b) -> M1 i c f a -> M1 i c f b Source

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

Functor ((,,,,) a b c d) Source

Since: base-4.18.0.0

Instance details

Defined in GHC.Internal.Base

Методы

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

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

Functor ((,,,,,) a b c d e) Source

Since: base-4.18.0.0

Instance details

Defined in GHC.Internal.Base

Методы

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

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

Functor ((,,,,,,) a b c d e f) Source

Since: base-4.18.0.0

Instance details

Defined in GHC.Internal.Base

Методы

fmap :: (a0 -> b0) -> (a, b, c, d, e, f, a0) -> (a, b, c, d, e, f, b0) Source

(<$) :: a0 -> (a, b, c, d, e, f, b0) -> (a, b, c, d, e, f, a0) Source

($>) :: Functor f => f a -> b -> f b infixl 4 Source

Перевернутая версия <$.

Примеры
Развернуть

Замените содержимое Maybe Int на константу String:

>>> Nothing $> "foo"
Nothing
>>> Just 90210 $> "foo"
Just "foo"

Замените содержимое Either Int Int на константу String, в результате чего получится Either Int String:

>>> Left 8675309 $> "foo"
Left 8675309
>>> Right 8675309 $> "foo"
Right "foo"

Замените каждый элемент списка на константу String:

>>> [1,2,3] $> "foo"
["foo","foo","foo"]

Замените второй элемент пары на константу String:

>>> (1,2) $> "foo"
(1,"foo")

Since: base-4.7.0.0

(<$>) :: Functor f => (a -> b) -> f a -> f b infixl 4 Source

Синоним infix для fmap.

Название этого оператора является аллюзией на $. Обратите внимание на сходство между их типами:

 ($)  ::              (a -> b) ->   a ->   b
(<$>) :: Functor f => (a -> b) -> f a -> f b

В то время как $ является применением функции, <$> является применением функции, поднятым над Functor.

Примеры
Развернуть

Преобразуйте из Maybe Int в Maybe String используя show:

>>> show <$> Nothing
Nothing
>>> show <$> Just 3
Just "3"

Преобразуйте из Either Int Int в Either Int String используя show:

>>> show <$> Left 17
Left 17
>>> show <$> Right 17
Right "17"

Удвойте каждый элемент списка:

>>> (*2) <$> [1,2,3]
[2,4,6]

Примените even ко второму элементу пары:

>>> even <$> (2,2)
(2,True)

(<&>) :: Functor f => f a -> (a -> b) -> f b infixl 1 Source

Перевернутая версия <$>.

(<&>) = flip fmap
Примеры
Развернуть

Примените (+1) к списку, Just и Right:

>>> Just 2 <&> (+1)
Just 3
>>> [1,2,3] <&> (+1)
[2,3,4]
>>> Right 3 <&> (+1)
Right 4

Since: base-4.11.0.0

unzip :: Functor f => f (a, b) -> (f a, f b) Source

Обобщение Data.List.unzip.

Примеры
Развернуть
>>> unzip (Just ("Hello", "World"))
(Just "Hello",Just "World")
>>> unzip [("I", "love"), ("really", "haskell")]
(["I","really"],["love","haskell"])

Since: base-4.19.0.0

void :: Functor f => f a -> f () Source

void value игнорирует результат вычисления, такой как возвращаемое значение действия IO.

Примеры
Развернуть

Заменить содержимое Maybe Int на единицу:

>>> void Nothing
Nothing
>>> void (Just 3)
Just ()

Заменить содержимое Either Int Int на единицу, что приводит к значению Either Int ():

>>> void (Left 8675309)
Left 8675309
>>> void (Right 8675309)
Right ()

Заменить каждый элемент списка на единицу:

>>> void [1,2,3]
[(),(),()]

Заменить второй элемент пары на единицу:

>>> void (1,2)
(1,())

Игнорировать результат действия IO:

>>> mapM print [1,2]
1
2
[(),()]
>>> void $ mapM print [1,2]
1
2

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.12.1/docs/libraries/base-4.21.0.0-8e62/Data-Functor.html

Spec-Zone.ru

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