Data.Set.findMin is a partial function

Jean-Philippe Bernardy jeanphilippe.bernardy at gmail.com
Mon Dec 11 10:26:14 EST 2006


You can try Data.Set.minView.
http://www.haskell.org/ghc/docs/latest/html/libraries/base/Data-Set.html

Cheers,
JP.

On 12/11/06, Henning Thielemann <lemming at henning-thielemann.de> wrote:
>
> I'm using Set for algorithms which work this way:
>   while the set is non-empty
>     choose an element from the set
>     do something with that element
>     remove the element and some more that depend on it
>
> However when I code this with Set.null and Set.findMin, I run into the
> same trouble like with List.null and List.head, namely Set.findMin is a
> partial function. I like to have a function like
>  choose :: Set a -> Maybe a
>  choose set = toMaybe (not (Set.null set)) (Set.findMin set)
>
>  toMaybe :: Bool -> a -> Maybe a
>  toMaybe False _ = Nothing
>  toMaybe True  x = Just x
>
> in Data.Set.
>
> Opinions?
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://www.haskell.org/mailman/listinfo/libraries
>


More information about the Libraries mailing list