[GHC] #974: Add unzipEithers, lefts, rights to Data.Either
kahl at cas.mcmaster.ca
kahl at cas.mcmaster.ca
Mon Nov 13 14:18:47 EST 2006
Aaron Denney wrote:
>
> On 2006-11-13, roconnor at theorem.ca <roconnor at theorem.ca> wrote:
> > On Mon, 13 Nov 2006, Bulat Ziganshin wrote:
> >
> >> i prefer name splitEithers. [...]
> >
> > [...]
>
> Unzip is reversible though. The order is preserved, and
> (uncurry zip) . unzip = id = unzip . (uncurry zip)
> There is no "zipEithers" that is any sort of reverse.
Only one-sided, of course:
splitEithers . (\ (xs, ys) -> map Left xs ++ map Right ys) = id
>
> Hmm. (,) is the generic product, and Either is the generic coproduct.
> counzip?
Or, better even, ``cozip'' ;-) (I couldn't resist...)
(uncurry zip) :: ([a],[b]) -> [a * b]
/
/
/
/
/
/
/
/
/
/
cozip :: [a + b] -> ([a],[b])
;-)
Wolfram
P.S.: I currently have:
eitherList :: [Either a b] -> ([a], [b])
eitherPair2 :: (a, Either b c) -> Either (a,b) (a,c)
eitherMap :: (a -> c) -> (b -> d) -> Either a b -> Either c d
More information about the Libraries
mailing list