ClojureDocs

Nav

Namespaces

remove

clojure.zip

Available since 1.0
  • (remove loc)
Removes the node at loc, returning the loc that would have preceded
it in a depth-first walk.
2 Examples
(require '[clojure.zip :as zip])

(def vzip
  (zip/vector-zip
    [[1 2]
     [3 4 [5 10 [11 12]]]
     [13 14]])) ;; target for removal

(-> vzip zip/down zip/rightmost zip/remove zip/root)
;; [[1 2] [3 4 [5 10 [11 12]]]]
(use 'clojure.zip)
;; def a tree struct
;;    .
;;   / \
;;  .   0
;; / \
;; 1 2
(def tree
  (vector-zip
    [[1 2] 0]))

;;    #1         #2
;;    x          x
;;   / \        /|\
;;  1   0      1 - 0
;;              / \
;;             1   2

;; #1
(-> tree
    down
    (replace 1)
    up
    node) ;; => [1 0]
;; #2
(-> tree
    down
    (insert-left 1)
    remove ;; cut desired node
    up
    node) ;; => [1 0]
See Also
No see-alsos for clojure.zip/remove
0 Notes
No notes for remove