Diese Frage bezieht sich auf und ist ein Follow-up 37484870 in Frage zu stellen:Follow-up zu "wie fügt man ein Kind mit clojure.zip einem Baum hinzu?"
Betrachten Sie den folgenden Code
(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))
wo z bezieht sich auf clojure.zip. Beachten Sie, dass 10 eine viel größere Zahl hätte sein können.
Nun, wie füge ich einen Knoten v mit den Funktionen der API für clojure.zip, so dass das Ergebnis zu
((def v (z/vector-zip (f (inc 10)) ?
gleich ist also ein Knoten auf der linken Seite die meisten Knoten an der tiefsten hinzugefügt wird Level (wenn das hilft).
Der Grund für diese Frage ist, dass die Antwort auf die Frage 37484870 eine Schleife von 10
(z/down)
(z/right)
Funktionen impliziert aber vielleicht Reißverschluss Strukturen bieten eine direkte Lösung.
ich von einer gebildeten Lösung denke wie Funktionen oder Erstellen von Makros auf bestimmte Positionen in dem Baum zu bewegen, als Ergänzung zum nächsten usw. –