A set of unique values. The values can be any comparable type. This
includes Int
, Float
, Time
, Char
, String
, and tuples or lists
of comparable types.
Insert, remove, and query operations all take O(log n) time.
Represents a set of unique values. So (Set Int)
is a set of integers and
(Set String)
is a set of strings.
empty : Set a
Create an empty set.
singleton : comparable -> Set comparable
Create a set with one value.
insert : comparable -> Set comparable -> Set comparable
Insert a value into a set.
remove : comparable -> Set comparable -> Set comparable
Remove a value from a set. If the value is not found, no changes are made.
isEmpty : Set a -> Basics.Bool
Determine if a set is empty.
member : comparable -> Set comparable -> Basics.Bool
Determine if a value is in a set.
size : Set a -> Basics.Int
Determine the number of elements in a set.
union : Set comparable -> Set comparable -> Set comparable
Get the union of two sets. Keep all values.
intersect : Set comparable -> Set comparable -> Set comparable
Get the intersection of two sets. Keeps values that appear in both sets.
diff : Set comparable -> Set comparable -> Set comparable
Get the difference between the first set and the second. Keeps values that do not appear in the second set.
toList : Set a -> List a
Convert a set into a list, sorted from lowest to highest.
fromList : List comparable -> Set comparable
Convert a list into a set, removing any duplicates.
map : (comparable -> comparable2) -> Set comparable -> Set comparable2
Map a function onto a set, creating a new set with no duplicates.
foldl : (a -> b -> b) -> b -> Set a -> b
Fold over the values in a set, in order from lowest to highest.
foldr : (a -> b -> b) -> b -> Set a -> b
Fold over the values in a set, in order from highest to lowest.
filter : (comparable -> Basics.Bool) -> Set comparable -> Set comparable
Only keep elements that pass the given test.
import Set exposing (Set)
numbers : Set Int
numbers =
Set.fromList [-2,-1,0,1,2]
positives : Set Int
positives =
Set.filter (\x -> x > 0) numbers
-- positives == Set.fromList [1,2]
partition : (comparable -> Basics.Bool) -> Set comparable -> ( Set comparable, Set comparable )
Create two new sets. The first contains all the elements that passed the given test, and the second contains all the elements that did not.