Bifunctor
磨機 Functor
的執行在單一型別引數中是協變的。例如,如果 f
是 Functor
,那麼給定 f a
,以及形式 a -> b
的函式,可以獲得 f b
(通過使用 fmap
)。
Bifunctor
在兩個型別引數中是協變的。如果 f
是 Bifunctor
,那麼給出一個 f a b
和兩個函式,一個來自 a -> c
,另一個來自 b -> d
,那麼就可以獲得一個 f c d
(使用 bimap
)。
first
應該被認為是第一類引數的 fmap
,second
作為第二類的 fmap
,bimap
應該被設想為分別在第一和第二型別引數上共同對映兩個函式。