glasses.tree

post-tree

(post-tree traversal)
given a traversal from a node to its items of nodes
pre-tree returns a traversal of all nodes in the tree
where updates to the tree are done after diggin down the tree

Examples:

(= (lens/update {:v 1, :n [{:v 2}, {:v 3}]}
    [(post-tree [:n travers/mapped]) :v]
    inc)
   {:v 2, :n [{:v 3, :n []} {:v 4, :n []}]})

pre-tree

(pre-tree traversal)
given a traversal from a node to its items of nodes
pre-tree returns a traversal of all nodes in the tree
where updates to the tree are done before diggin down the tree

Examples:

(= (lens/update {:v 1, :n [{:v 2}, {:v 3}]}
    [(pre-tree [:n travers/mapped]) :v]
    inc)
   {:v 2, :n [{:v 3, :n []} {:v 4, :n []}]})