Spec-Zone.ru › Haskell 7

Data.Functor

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

Описание

Функторы: единообразное действие над параметризованным типом, обобщающее функцию map для списков.

class Functor f where Исходный код

Класс Functor используется для типов, над которыми можно применять отображение. Экземпляры Functor должны удовлетворять следующим законам:

fmap id  ==  id
fmap (f . g)  ==  fmap f . fmap g

Экземпляры Functor для списков, Maybe и IO удовлетворяют этим законам.

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

fmap

Методы

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

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

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

Примеры

Functor []
Functor IO
Functor МожетБыть
Functor ReadP
Functor ReadPrec
Functor Последний
Functor Первый
Functor STM
Functor Обработчик
Functor ZipList
Functor Тождество
Functor ОписаниеАргумента
Functor ОписаниеПараметра
Functor ПорядокАргументов
Functor ((->) r)
Functor (Either a)
Functor (пара a)
Functor (ST s)
Functor (Прокси *)
Arrow a => Functor (ArrowMonad a)
Monad m => Functor (ОбёрнутыйМонад m)
Functor (Const m)
Functor (ST s)
Functor f => Functor (Alt * f)
Arrow a => Functor (ОбёрнутыйArrow a b)

($>) :: Functor f => f a -> b -> f b infixl 4 Источник

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

Примеры

Замените содержимое 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")

С: 4.7.0.0

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

Синоним-инфикс для fmap.

Примеры

Преобразовать из 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)

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/7.10.3/docs/html/libraries/base-4.8.2.0/Data-Functor.html

Spec-Zone.ru

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