Spec-Zone.ru › Elixir 1.3

Множество карт

Набор функций для работы с множествами.

Множество 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)

Проверяет, содержит ли set value

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API