Недавно я слушал интервью Rich Hickey на Радио Software Engineering. Во время интервью Рич упомянул, что коллекции Clojure реализованы как деревья. Я надеюсь реализовать постоянные структуры данных на другом языке и хотел бы понять, как реализуются наборы и Clojure другие постоянные структуры данных.
Что будет выглядеть дерево в каждой точке в следующем сценарии?
-  Создайте набор {1 2 3}
-  Создайте объединение {1 2 3}и{4}
-  Создайте разницу между {1 2 3 4}и{1}
Я хотел бы понять, как сгенерированы три сета ({1 2 3}, {1 2 3 4} и {2 3 4}), и как обрабатываются "удаления".
Я также хотел бы узнать максимальное количество ветвей, которое может иметь node. Рич упомянул в интервью, что деревья мелкие, поэтому предположительно коэффициент ветвления больше двух.
