clojure.zip
Full namespace name: clojure.zip
Overview
Functional hierarchical zipper, with navigation, editing, and enumeration. See Huet
Public Variables and Functions
append-childfunction
Usage: (append-child loc item)
Inserts the item as the rightmost child of the node at this loc, without moving
Added in Clojure version 1.0
Sourcebranch?function
Usage: (branch? loc)
Returns true if the node at loc is a branch
Added in Clojure version 1.0
Sourcechildrenfunction
Usage: (children loc)
Returns a seq of the children of node at loc, which must be a branch
Added in Clojure version 1.0
Sourcedownfunction
Usage: (down loc)
Returns the loc of the leftmost child of the node at this loc, or nil if no children
Added in Clojure version 1.0
Sourceeditfunction
Usage: (edit loc f & args)
Replaces the node at this loc with the value of (f node args)
Added in Clojure version 1.0
Sourceend?function
Usage: (end? loc)
Returns true if loc represents the end of a depth-first walk
Added in Clojure version 1.0
Sourceinsert-childfunction
Usage: (insert-child loc item)
Inserts the item as the leftmost child of the node at this loc, without moving
Added in Clojure version 1.0
Sourceinsert-leftfunction
Usage: (insert-left loc item)
Inserts the item as the left sibling of the node at this loc, without moving
Added in Clojure version 1.0
Sourceinsert-rightfunction
Usage: (insert-right loc item)
Inserts the item as the right sibling of the node at this loc, without moving
Added in Clojure version 1.0
Sourceleftfunction
Usage: (left loc)
Returns the loc of the left sibling of the node at this loc, or nil
Added in Clojure version 1.0
Sourceleftmostfunction
Usage: (leftmost loc)
Returns the loc of the leftmost sibling of the node at this loc, or self
Added in Clojure version 1.0
Sourceleftsfunction
Usage: (lefts loc)
Returns a seq of the left siblings of this loc
Added in Clojure version 1.0
Sourcemake-nodefunction
Usage: (make-node loc node children)
Returns a new branch node, given an existing node and new children. The loc is only used to supply the constructor.
Added in Clojure version 1.0
Sourcenextfunction
Usage: (next loc)
Moves to the next loc in the hierarchy, depth-first. When reaching the end, returns a distinguished loc detectable via end?. If already at the end, stays there.
Added in Clojure version 1.0
Sourcenodefunction
Usage: (node loc)
Returns the node at loc
Added in Clojure version 1.0
Sourcepathfunction
Usage: (path loc)
Returns a seq of nodes leading to this loc
Added in Clojure version 1.0
Sourceprevfunction
Usage: (prev loc)
Moves to the previous loc in the hierarchy, depth-first. If already at the root, returns nil.
Added in Clojure version 1.0
Sourceremovefunction
Usage: (remove loc)
Removes the node at loc, returning the loc that would have preceded it in a depth-first walk.
Added in Clojure version 1.0
Sourcereplacefunction
Usage: (replace loc node)
Replaces the node at this loc, without moving
Added in Clojure version 1.0
Sourcerightfunction
Usage: (right loc)
Returns the loc of the right sibling of the node at this loc, or nil
Added in Clojure version 1.0
Sourcerightmostfunction
Usage: (rightmost loc)
Returns the loc of the rightmost sibling of the node at this loc, or self
Added in Clojure version 1.0
Sourcerightsfunction
Usage: (rights loc)
Returns a seq of the right siblings of this loc
Added in Clojure version 1.0
Sourcerootfunction
Usage: (root loc)
zips all the way up and returns the root node, reflecting any changes.
Added in Clojure version 1.0
Sourceseq-zipfunction
Usage: (seq-zip root)
Returns a zipper for nested sequences, given a root sequence
Added in Clojure version 1.0
Sourceupfunction
Usage: (up loc)
Returns the loc of the parent of the node at this loc, or nil if at the top
Added in Clojure version 1.0
Sourcevector-zipfunction
Usage: (vector-zip root)
Returns a zipper for nested vectors, given a root vector
Added in Clojure version 1.0
Sourcexml-zipfunction
Usage: (xml-zip root)
Returns a zipper for xml elements (as from xml/parse), given a root element
Added in Clojure version 1.0
Sourcezipperfunction
Usage: (zipper branch? children make-node root)
Creates a new zipper structure. branch? is a fn that, given a node, returns true if can have children, even if it currently doesn't. children is a fn that, given a branch node, returns a seq of its children. make-node is a fn that, given an existing node and a seq of children, returns a new branch node with the supplied children. root is the root node.
Added in Clojure version 1.0
Source
© Rich Hickey
Licensed under the Eclipse Public License 1.0.
https://clojure.github.io/clojure/branch-clojure-1.8.0/clojure.zip-api.html