У меня есть дерево (список списков), я хотел бы изменить выбранный узел дерева.Обновление дерева в clojure
[
[:a1]
[
[:b1, b2]
[:c1, c2]
]
]
Например, я хотел бы добавить b3
к узлу (массив) с b
записей.
[
[:a1] ; 0
[ ; 1
[:b1, b2, b3] ; 1, 0
[:c1, c2] ; 1, 1
]
]
Вопрос: как обновить узел данный список индексов, где я могу найти целевой узел ([1, 0]
)? На других языках с изменчивым деревом я мог просто найти массив и сделать target_node.append("b3")
, что невозможно в clojure.
Я хотел бы избежать явного использования изменяемых объектов Java.
Связанные
Помните, что если у вас есть неизменные структуры вы просто вернуть новое дерево с новым значением положите его на место. – soulcheck
Возможно, вы захотите использовать карты вместо векторов. – soulcheck