Этот вопрос относится к вопросу и является продолжением вопроса 37484870:
Рассмотрим следующий код
(defn f [x]
(loop [a x v [(inc x)]]
(if (> a 0)
(recur (dec a) (conj [a] v))
v)))
(def v (z/vector-zip (f 10))
где z относится к clojure.zip. Обратите внимание, что 10 могло быть гораздо большим числом.
Теперь, как мне добавить узел в v, используя функции из API для clojure.zip, чтобы результат был равен
((def v (z/vector-zip (f (inc 10)) ?
Таким образом, узел добавляется к самому левому узлу на самом глубоком уровне (если это помогает).
Причина, по которой задается этот вопрос, заключается в том, что ответ на вопрос 37484870 подразумевает цикл из 10
(z/down)
(z/right)
функции, но, возможно, структуры с застежкой-молнией предлагают более прямое решение.