1.8 Множество

📚 Работа с множествами в Glint

Множество в языке программирования Glint представляет собой неупорядоченную коллекцию уникальных элементов. В множестве не может быть дублирующихся элементов, и порядок элементов не гарантирован.

📝 Основы работы с множествами

Создание множества

my_set is {1, 2, 3, 'a', 'b'}

Добавление элемента в множество

my_set.add 'c'

Удаление элемента из множества

my_set.remove 2

Проверка наличия элемента в множестве

write "'a' in my_set:", 'a' in my_set  # Вывод: 'a' in my_set: true

Вывод содержимого множества

write "Set elements:", my_set  # Примерный вывод: Set elements: {'a', 1, 3, 'c', 'b'}

Этот пример создает множество my_set, содержащее числа и строки. Затем он добавляет новый элемент 'c' в множество и удаляет элемент 2. Далее он проверяет наличие элемента 'a' в множестве и выводит содержимое множества. Множества часто используются для операций над уникальными наборами данных.

🆕 Дополнительно

В Glint добавлены дополнительные возможности для работы с множествами, которые делают их еще более мощными и удобными в использовании:

🔀 Поддержка математических операций над множествами

Glint поддерживает основные математические операции над множествами, такие как объединение, пересечение, разность и симметрическая разность.

set1 is {1, 2, 3}
set2 is {3, 4, 5}

union_set is set1 + set2  # Объединение множеств
intersection_set is set1 * set2  # Пересечение множеств
difference_set is set1 - set2  # Разность множеств
symmetric_difference_set is set1 ^ set2  # Симметрическая разность множеств

write "Union:", union_set  # Примерный вывод: Union: {1, 2, 3, 4, 5}
write "Intersection:", intersection_set  # Примерный вывод: Intersection: {3}
write "Difference:", difference_set  # Примерный вывод: Difference: {1, 2}
write "Symmetric Difference:", symmetric_difference_set  # Примерный вывод: Symmetric Difference: {1, 2, 4, 5}

🌀 Динамические множества

В Glint можно временно изменять множества внутри специальных блоков кода. После выхода из блока изменения перестают действовать, возвращая множество к исходному состоянию.

my_set is {1, 2, 3}

# Динамический блок
dynamic my_set:
    my_set.add 4
    my_set.remove 2
    write "Inside dynamic block:", my_set  # Примерный вывод: Inside dynamic block: {1, 3, 4}

# Вне блока множество возвращается к исходному состоянию
write "Outside dynamic block:", my_set  # Примерный вывод: Outside dynamic block: {1, 2, 3}

🔍 Поддержка сложных запросов

В Glint добавлены методы для выполнения сложных запросов на множествах, таких как фильтрация элементов по условию.

my_set is {1, 2, 3, 4, 5, 6}

# Фильтрация элементов множества по условию
filtered_set is my_set.filter(x -> x % 2 = 0)
write "Filtered set (even numbers):", filtered_set  # Примерный вывод: Filtered set (even numbers): {2, 4, 6}

Last updated