clojure.zip

by Rich Hickey

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

Source

branch?function

Usage: (branch? loc)
Returns true if the node at loc is a branch

Added in Clojure version 1.0

Source

childrenfunction

Usage: (children loc)
Returns a seq of the children of node at loc, which must be a branch

Added in Clojure version 1.0

Source

downfunction

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

Source

editfunction

Usage: (edit loc f & args)
Replaces the node at this loc with the value of (f node args)

Added in Clojure version 1.0

Source

end?function

Usage: (end? loc)
Returns true if loc represents the end of a depth-first walk

Added in Clojure version 1.0

Source

insert-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

Source

insert-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

Source

insert-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

Source

leftfunction

Usage: (left loc)
Returns the loc of the left sibling of the node at this loc, or nil

Added in Clojure version 1.0

Source

leftmostfunction

Usage: (leftmost loc)
Returns the loc of the leftmost sibling of the node at this loc, or self

Added in Clojure version 1.0

Source

leftsfunction

Usage: (lefts loc)
Returns a seq of the left siblings of this loc

Added in Clojure version 1.0

Source

make-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

Source

nextfunction

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

Source

nodefunction

Usage: (node loc)
Returns the node at loc

Added in Clojure version 1.0

Source

pathfunction

Usage: (path loc)
Returns a seq of nodes leading to this loc

Added in Clojure version 1.0

Source

prevfunction

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

Source

removefunction

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

Source

replacefunction

Usage: (replace loc node)
Replaces the node at this loc, without moving

Added in Clojure version 1.0

Source

rightfunction

Usage: (right loc)
Returns the loc of the right sibling of the node at this loc, or nil

Added in Clojure version 1.0

Source

rightmostfunction

Usage: (rightmost loc)
Returns the loc of the rightmost sibling of the node at this loc, or self

Added in Clojure version 1.0

Source

rightsfunction

Usage: (rights loc)
Returns a seq of the right siblings of this loc

Added in Clojure version 1.0

Source

rootfunction

Usage: (root loc)
zips all the way up and returns the root node, reflecting any
changes.

Added in Clojure version 1.0

Source

seq-zipfunction

Usage: (seq-zip root)
Returns a zipper for nested sequences, given a root sequence

Added in Clojure version 1.0

Source

upfunction

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

Source

vector-zipfunction

Usage: (vector-zip root)
Returns a zipper for nested vectors, given a root vector

Added in Clojure version 1.0

Source

xml-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

Source

zipperfunction

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