Описание тега bifunctor
Бифунктор - это конструктор типа с двумя параметрами ковариантного типа, которые могут быть "сопоставлены". Примеры включают кортежи и типы Either (также известные как результат, дизъюнкция).
В haskell реализацией канонических бифункторов является
пакет бифункторов Эдварда Кметта. Он обеспечиваетBifunctor
класс с несколькими общими экземплярами и рядом других полезных модулей. Основные функции для работы сBifunctor
являются first
, second
а также bimap
, как видно из следующего ghci
стенограмма:
> import Data.Bifunctor
> let pair = (5, "hi")
> first (*6) pair
(30,"hi")
> second (fmap toUpper) pair
(5,"HI")
> bimap (*6) (fmap toUpper) pair
(30,"HI")