Data.Bifunctor
| Авторские права | (C) 2008-2014 Edward Kmett, |
|---|---|
| Лицензия | BSD-стиль (см. файл LICENSE) |
| Поддерживающий | libraries@haskell.org |
| Устойчивость | предварительная |
| Переносимость | переносимая |
| Безопасный Haskell | Безопасный |
| Язык | Haskell2010 |
Описание
С тех пор как: 4.8.0.0
class Bifunctor p where Исходный код
Формально, класс Bifunctor представляет бифунктор от Hask -> Hask.
Интуитивно это бифунктор, где оба аргумента являются ковариантными.
Вы можете определить Bifunctor либо определением bimap, либо определением first и second.
Если вы предоставите bimap, вы должны убедиться, что:
bimapidid≡id
Если вы предоставите first и second, убедитесь в следующем:
firstid≡idsecondid≡id
Если вы предоставите оба, вы также должны убедиться, что:
bimapf g ≡firstf.secondg
Это гарантируется параметричностью:
bimap(f.g) (h.i) ≡bimapf h.bimapg ifirst(f.g) ≡firstf.firstgsecond(f.g) ≡secondf.secondg
С тех пор как: 4.8.0.0
Методы
bimap :: (a -> b) -> (c -> d) -> p a c -> p b d Исходный код
Применить отображение к обоим аргументам одновременно.
bimapf g ≡firstf.secondg
first :: (a -> b) -> p a c -> p b c Исходный код
Применить отображение ковариантно к первому аргументу.
firstf ≡bimapfid
second :: (b -> c) -> p a b -> p a c Исходный код
Применить отображение ковариантно ко второму аргументу.
second≡bimapid
© 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-Bifunctor.html