
Sorry about that. filterIncreasing and filterDecreasing filter assuming a
predicate that is increasing or decreasing on the key values. So instead of
an O(n) pass over the whole set/map, they simply perform an O(log n) split.
On Aug 6, 2016 11:31 PM, "Ivan Lazar Miljenovic"
On 7 August 2016 at 13:15, David Feuer
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)
I'm not sure what the difference between the first two functions are, or even how they differ from a generic filter function.
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@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
-- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com http://IvanMiljenovic.wordpress.com