More Data.Set and Data.Map operations

Oleg Grenrus oleg.grenrus at iki.fi
Sun Aug 7 04:32:57 UTC 2016


-1 on unionWithMapping/Key. There is already mergeWithKey (and there’s pull request to `these` to use it, I’d just hadn’t time to look it thru properly and apply).

- Oleg Grenrus (co-maintainer of these)

> On 07 Aug 2016, at 06:15, David Feuer <david.feuer at gmail.com> wrote:
> 
> Cale Gibbard and Ryan Trinkle are interested in adding some more
> operations they say will be useful in their work. Note that
> unionWithMapping is intended to enable an efficient implementation of
> alignWith in Data.Align in the `these` package.
> 
> Set:
> 
> filterIncreasing :: Ord a => (a -> Bool) -> Set a -> Set a
> filterDecreasing :: Ord a => (a -> Bool) -> Set a -> Set a
> partitionIncreasing :: Ord a => (a -> Bool) -> Set a -> (Set a, Set a)
> 
> Map:
> 
> filterKeysIncreasing :: Ord k => (k -> Bool) -> Map k a -> Map k a
> filterKeysDecreasing :: Ord k => (k -> Bool) -> Map k a -> Map k a
> partitionKeysIncreasing :: Ord k => (k -> Bool) -> Map k a -> (Map k a, Map k a)
> 
> traverseMaybe :: Applicative f => (a -> f (Maybe b)) -> Map k a -> f (Map k b)
> 
> alterMany :: Ord k => (a -> Maybe b -> Maybe b) -> Map k a -> Map k b -> Map k b
> 
> alterManyA :: (Applicative f, Ord k) => (a -> Maybe b -> f (Maybe b))
> -> Map k a -> Map k b -> f (Map k b)
> 
> unionWithMapping :: Ord k => (a -> c) -> (b -> c) -> (a -> b -> c) ->
> Map k a -> Map k b -> Map k c
> 
> unionWithKeyMapping :: Ord k => (k -> a -> c) -> (k -> b -> c) -> (k
> -> a -> b -> c)
> -> Map k a -> Map k b -> Map k c
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 842 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20160807/32617241/attachment.sig>


More information about the Libraries mailing list