Множество карт
Набор функций для работы с множествами.
Множество MapSet представлено внутри как структура, поэтому %MapSet{} можно использовать всякий раз, когда необходимо сопоставить любой MapSet. Однако обратите внимание, что поля структуры являются закрытыми и к ним нельзя обращаться напрямую. Вместо этого используйте функции в этом модуле.
Краткое описание
Типы
- t()
- value()
Функции
- delete(set, value)
-
Удаляет
valueизset - difference(map_set1, map_set2)
-
Возвращает множество, которое является
set1без элементовset2 - disjoint?(map_set1, map_set2)
-
Проверяет, что
set1иset2не имеют общих элементов - equal?(map_set1, map_set2)
-
Проверяет, равны ли два множества
- intersection(map_set1, map_set2)
-
Возвращает множество, содержащее только элементы, которые
set1иset2имеют общих - member?(map_set, value)
-
Проверяет, содержит ли
setvalue - new()
-
Возвращает новое множество
- new(mapset)
-
Создает множество из перечисляемого объекта
- new(enumerable, transform)
-
Создает множество карт из перечисляемого объекта с помощью функции преобразования
- put(set, value)
-
Вставляет
valueвset, еслиsetего ещё не содержит - size(map_set)
-
Возвращает количество элементов в
set - subset?(map_set1, map_set2)
-
Проверяет, содержатся ли все элементы
set1вset2 - to_list(map_set)
-
Преобразует
setв список - union(map_set1, map_set2)
-
Возвращает множество, содержащее все элементы
set1иset2
Типы
t()
t
value()
value() :: term
Функции
delete(set, value)
delete(t, value) :: t
Удаляет value из set.
Возвращает новое множество, являющееся копией set без 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(map_set1, map_set2)
difference(t, t) :: t
Возвращает множество, которое является set1 без элементов set2.
Примеры
iex> MapSet.difference(MapSet.new([1, 2]), MapSet.new([2, 3, 4])) #MapSet<[1]>
disjoint?(map_set1, map_set2)
disjoint?(t, t) :: boolean
Проверяет, что set1 и set2 не имеют общих элементов.
Примеры
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?(map_set1, map_set2)
equal?(t, t) :: boolean
Проверяет, равны ли два множества.
Сравнение элементов должно выполняться с использованием ===.
Примеры
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(map_set1, map_set2)
intersection(t, t) :: t
Возвращает множество, содержащее только элементы, которые set1 и set2 имеют общих.
Примеры
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?(map_set, value)
member?(t, value) :: boolean
Проверяет, содержит ли set value.
Примеры
iex> MapSet.member?(MapSet.new([1, 2, 3]), 2) true iex> MapSet.member?(MapSet.new([1, 2, 3]), 4) false
new()
new() :: t
Возвращает новое множество.
Примеры
iex> MapSet.new #MapSet<[]>
new(mapset)
new(Enum.t) :: t
Создаёт множество из перечисляемого объекта.
Примеры
iex> MapSet.new([:b, :a, 3]) #MapSet<[3, :a, :b]> iex> MapSet.new([3, 3, 3, 2, 2, 1]) #MapSet<[1, 2, 3]>
new(enumerable, transform)
new(Enum.t, (term -> term)) :: t
Создаёт множество карт из перечисляемого объекта с помощью функции преобразования.
Примеры
iex> MapSet.new([1, 2, 1], fn x -> 2 * x end) #MapSet<[2, 4]>
put(set, value)
put(t, value) :: t
Вставляет value в set , если set его ещё не содержит.
Примеры
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(map_set)
size(t) :: non_neg_integer
Возвращает количество элементов в set.
Примеры
iex> MapSet.size(MapSet.new([1, 2, 3])) 3
subset?(map_set1, map_set2)
subset?(t, t) :: boolean
Проверяет, содержатся ли все элементы set1 в set2.
Эта функция проверяет, является ли set1 подмножеством 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(map_set)
to_list(t) :: list
Преобразует set в список.
Примеры
iex> MapSet.to_list(MapSet.new([1, 2, 3])) [1, 2, 3]
union(map_set1, map_set2)
union(t, t) :: t
Возвращает множество, содержащее все элементы set1 и set2.
Примеры
iex> MapSet.union(MapSet.new([1, 2]), MapSet.new([2, 3, 4])) #MapSet<[1, 2, 3, 4]>
© 2012 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/elixir/1.3.4/MapSet.html