第一和第二
如果只需要在第一個引數或第二個引數上共同對映,那麼應該使用 first
或 second
(代替 bimap
)。
first::Bifunctor f => (a -> c) -> f a b -> f c b
first f = bimap f id
second::Bifunctor f => (b -> d) -> f a b -> f a d
second g = bimap id g
例如,
ghci> second (+ 2) (Right 40)
Right 42
ghci> second (+ 2) (Left "uh oh")
Left "uh oh"