mini-1.3.0.1: Minimal essentials
Safe HaskellSafe-Inferred
LanguageHaskell2010

Mini.Data.Set

Description

A structure containing unique elements

Synopsis

Type

data Set a Source #

A set containing elements of type a, internally structured as an AVL tree

Instances

Instances details
Foldable Set Source # 
Instance details

Defined in Mini.Data.Set

Methods

fold :: Monoid m => Set m -> m #

foldMap :: Monoid m => (a -> m) -> Set a -> m #

foldMap' :: Monoid m => (a -> m) -> Set a -> m #

foldr :: (a -> b -> b) -> b -> Set a -> b #

foldr' :: (a -> b -> b) -> b -> Set a -> b #

foldl :: (b -> a -> b) -> b -> Set a -> b #

foldl' :: (b -> a -> b) -> b -> Set a -> b #

foldr1 :: (a -> a -> a) -> Set a -> a #

foldl1 :: (a -> a -> a) -> Set a -> a #

toList :: Set a -> [a] #

null :: Set a -> Bool #

length :: Set a -> Int #

elem :: Eq a => a -> Set a -> Bool #

maximum :: Ord a => Set a -> a #

minimum :: Ord a => Set a -> a #

sum :: Num a => Set a -> a #

product :: Num a => Set a -> a #

Show a => Show (Set a) Source # 
Instance details

Defined in Mini.Data.Set

Methods

showsPrec :: Int -> Set a -> ShowS #

show :: Set a -> String #

showList :: [Set a] -> ShowS #

Eq a => Eq (Set a) Source # 
Instance details

Defined in Mini.Data.Set

Methods

(==) :: Set a -> Set a -> Bool #

(/=) :: Set a -> Set a -> Bool #

Ord a => Ord (Set a) Source # 
Instance details

Defined in Mini.Data.Set

Methods

compare :: Set a -> Set a -> Ordering #

(<) :: Set a -> Set a -> Bool #

(<=) :: Set a -> Set a -> Bool #

(>) :: Set a -> Set a -> Bool #

(>=) :: Set a -> Set a -> Bool #

max :: Set a -> Set a -> Set a #

min :: Set a -> Set a -> Set a #

Construction

empty :: Set a Source #

O(1) The empty set

fromList :: Ord a => [a] -> Set a Source #

O(n log n) Make a set from a tail-biased list of values

singleton :: a -> Set a Source #

O(1) Make a set with a single value

Combination

difference :: Ord a => Set a -> Set a -> Set a Source #

O(n log n) Subtract a set by another

intersection :: Ord a => Set a -> Set a -> Set a Source #

O(n log n) Intersect a set with another via left-biased matching

union :: Ord a => Set a -> Set a -> Set a Source #

O(n log n) Unite a set with another via left-biased matching

Conversion

toAscList :: Set a -> [a] Source #

O(n) Turn a set into a list of values in ascending order

toDescList :: Set a -> [a] Source #

O(n) Turn a set into a list of values in descending order

Modification

delete :: Ord a => a -> Set a -> Set a Source #

O(log n) Delete a value from a set

filter :: Ord a => (a -> Bool) -> Set a -> Set a Source #

O(n) Keep the values satisfying a predicate

insert :: Ord a => a -> Set a -> Set a Source #

O(log n) Insert a value into a set, overwriting if present

Query

isSubsetOf :: Ord a => Set a -> Set a -> Bool Source #

O(n log n) Check whether the values of a set exist in the other

lookupMax :: Set a -> Maybe a Source #

O(log n) Fetch the maximum value, or Nothing if the set is empty

lookupMin :: Set a -> Maybe a Source #

O(log n) Fetch the minimum value, or Nothing if the set is empty

member :: Ord a => a -> Set a -> Bool Source #

O(log n) Check whether a value is in a set

null :: Set a -> Bool Source #

O(1) Check whether a set is empty

size :: Set a -> Int Source #

O(n) Get the size of a set

Validation

valid :: Ord a => Set a -> Bool Source #

O(n) Check whether a set is internally height-balanced and ordered