"Either Fmap" 一直持续到获得正确的结果
"Either Fmap" which Continues until a Right Result has been Reached
如果Either fmap
是
(a -> b) -> p a a -> p a b
一旦返回 Left
就会停止映射。
在获得 Right
结果之前不会停止的函数的名称或类型签名是什么。
我怀疑是双函子,但我真的需要把它拼写出来 - 还不太了解这些东西的逻辑的微妙之处。
也许某种 fold
也适合...
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
如果Either fmap
是
(a -> b) -> p a a -> p a b
一旦返回 Left
就会停止映射。
在获得 Right
结果之前不会停止的函数的名称或类型签名是什么。
我怀疑是双函子,但我真的需要把它拼写出来 - 还不太了解这些东西的逻辑的微妙之处。
也许某种 fold
也适合...
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