" Fmap"继续直到达到正确的结果

时间:2017-08-25 14:43:29

标签: haskell either

如果Either fmap

(a -> b) -> p a a -> p a b

在返回Left后停止映射。

在获得Right结果之前不会停止的功能的名称或类型签名。

我怀疑是一个bifunctor,但我真的需要它拼写出来 - 还没有完全明白这些事情的逻辑。

也许某种fold也符合......

1 个答案:

答案 0 :(得分:5)

Data.Bifunctor.first :: (a -> b) -> Either a c -> Either b c

在ghci:

Data.Bifunctor> first (+1) (Left 0)
Left 1
Data.Bifunctor> first (+1) (Right 0)
Right 0