PROPOSAL: Add Data.Set.mapMaybe

Thomas Schilling nominolo at googlemail.com
Wed Oct 31 09:38:02 EDT 2007


On Wed, 2007-10-31 at 14:29 +0100, Thomas Schilling wrote:
> Hi there.
> 
> I recently find myself missing Data.Set.mapMaybe.  This function is
> implemented for Data.Map.Map, but is strangely missing from
> Data.Set.mapMaybe.  I believe it could be implemented using
> Data.Foldable, but not as efficiently.  The obvious implementation would
> be:
> 
> mapMaybe :: (Ord a, Ord b) => (a -> Maybe b) -> Set a -> Set b
> mapMaybe f Tip = Tip
> mapMaybe f (Bin _ x l r) = case f x of
>   Nothing -> merge (mapMaybe f l) (mapMaybe f r)
>   Just y  -> union y (mapMaybe f l) (mapMaybe f r)
> 
> Any comments?

D'oh!  This is wrong.  Sorry, for the noise.



More information about the Libraries mailing list