A set of functions for working with sets.
The MapSet
is represented internally as a struct, therefore %MapSet{}
can be used whenever there is a need to match on any MapSet
. Note though the struct fields are private and must not be accessed directly. Instead, use the functions in this module.
Deletes value
from set
Returns a set that is set1
without the members of set2
Checks if set1
and set2
have no members in common
Checks if two sets are equal
Returns a set containing only members that set1
and set2
have in common
Checks if set
contains value
Returns a new set
Creates a set from an enumerable
Creates a mapset from an enumerable via the transformation function
Inserts value
into set
if set
doesn’t already contain it
Returns the number of elements in set
Checks if set1
’s members are all contained in set2
Converts set
to a list
Returns a set containing all members of set1
and set2
t
value() :: term
delete(t, value) :: t
Deletes value
from set
.
Returns a new set which is a copy of set
but without value
.
iex> set = MapSet.new([1, 2, 3])
iex> MapSet.delete(set, 4)
#MapSet<[1, 2, 3]>
iex> MapSet.delete(set, 2)
#MapSet<[1, 3]>
difference(t, t) :: t
Returns a set that is set1
without the members of set2
.
iex> MapSet.difference(MapSet.new([1, 2]), MapSet.new([2, 3, 4]))
#MapSet<[1]>
disjoint?(t, t) :: boolean
Checks if set1
and set2
have no members in common.
iex> MapSet.disjoint?(MapSet.new([1, 2]), MapSet.new([3, 4]))
true
iex> MapSet.disjoint?(MapSet.new([1, 2]), MapSet.new([2, 3]))
false
equal?(t, t) :: boolean
Checks if two sets are equal.
The comparison between elements must be done using ===
.
iex> MapSet.equal?(MapSet.new([1, 2]), MapSet.new([2, 1, 1]))
true
iex> MapSet.equal?(MapSet.new([1, 2]), MapSet.new([3, 4]))
false
intersection(t, t) :: t
Returns a set containing only members that set1
and set2
have in common.
iex> MapSet.intersection(MapSet.new([1, 2]), MapSet.new([2, 3, 4]))
#MapSet<[2]>
iex> MapSet.intersection(MapSet.new([1, 2]), MapSet.new([3, 4]))
#MapSet<[]>
member?(t, value) :: boolean
Checks if set
contains value
.
iex> MapSet.member?(MapSet.new([1, 2, 3]), 2)
true
iex> MapSet.member?(MapSet.new([1, 2, 3]), 4)
false
new() :: t
Returns a new set.
iex> MapSet.new
#MapSet<[]>
new(Enum.t) :: t
Creates a set from an enumerable.
iex> MapSet.new([:b, :a, 3])
#MapSet<[3, :a, :b]>
iex> MapSet.new([3, 3, 3, 2, 2, 1])
#MapSet<[1, 2, 3]>
new(Enum.t, (term -> term)) :: t
Creates a mapset from an enumerable via the transformation function.
iex> MapSet.new([1, 2, 1], fn x -> 2 * x end)
#MapSet<[2, 4]>
put(t, value) :: t
Inserts value
into set
if set
doesn’t already contain it.
iex> MapSet.put(MapSet.new([1, 2, 3]), 3)
#MapSet<[1, 2, 3]>
iex> MapSet.put(MapSet.new([1, 2, 3]), 4)
#MapSet<[1, 2, 3, 4]>
size(t) :: non_neg_integer
Returns the number of elements in set
.
iex> MapSet.size(MapSet.new([1, 2, 3]))
3
subset?(t, t) :: boolean
Checks if set1
’s members are all contained in set2
.
This function checks if set1
is a subset of set2
.
iex> MapSet.subset?(MapSet.new([1, 2]), MapSet.new([1, 2, 3]))
true
iex> MapSet.subset?(MapSet.new([1, 2, 3]), MapSet.new([1, 2]))
false
to_list(t) :: list
Converts set
to a list.
iex> MapSet.to_list(MapSet.new([1, 2, 3]))
[1, 2, 3]
union(t, t) :: t
Returns a set containing all members of set1
and set2
.
iex> MapSet.union(MapSet.new([1, 2]), MapSet.new([2, 3, 4]))
#MapSet<[1, 2, 3, 4]>
© 2012–2017 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/elixir/1.3.3/MapSet.html