如果Either fmap是的话
(a -> b) -> p a a -> p a b
一旦Left返回,它将停止映射.
函数的名称或类型签名在获得Right结果之前不会停止.
我怀疑是一个bifunctor,但我真的需要它拼出来 - 不太明白这些东西的逻辑.
也许某种形式也fold适合......
Data.Bifunctor.first :: (a -> b) -> Either a c -> Either b c
Run Code Online (Sandbox Code Playgroud)
在ghci:
Data.Bifunctor> first (+1) (Left 0)
Left 1
Data.Bifunctor> first (+1) (Right 0)
Right 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
60 次 |
| 最近记录: |