[GHC] #974: Add unzipEithers, lefts,
rights to Data.Either
wnoise at ofb.net
Mon Nov 13 12:57:16 EST 2006
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. for me, unzipping is process of splitting
>> list of (a,b) values into the list of 'a' values and list of 'b'
>> values - just like unzipping in real life. this don't have anything common
>> with the algorithm of this function
> The concern I have with split is that almost all the other split functions
> work by taking an ordered container and returning two containers where
> everything in the first container preceeds everything in the second
> container. unzipEithers doesn't have this property. However
> unzipEithers is a process of splitting a list of Either a b values into
> a list of 'a' values and a list of 'b' values, similar to the unzip
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.
While I understand what is meant by unzipEithers, I think that I too
would prefer split, break, extract, partition, or similar.
If we think of lazy stream processing, it's a type of sorting fork or
Hmm. (,) is the generic product, and Either is the generic coproduct.
More information about the Libraries