ClojureDocs

Namespaces

clojure.walk

This file defines a generic tree walker for Clojure data
structures.  It takes any data structure (list, vector, map, set,
seq), calls a function on every element, and uses the return value
of the function in place of the original.  This makes it fairly
easy to write recursive search-and-replace functions, as shown in
the examples.

Note: "walk" supports all Clojure data structures EXCEPT maps
created with sorted-map-by.  There is no (obvious) way to retrieve
the sorting function.
Vars in clojure.walk

k

keywordize-keys
Recursively transforms all map keys from strings to keywords.

m

macroexpand-all
Recursively performs all possible macroexpansions in form.

p

postwalk
Performs a depth-first, post-order traversal of form. Calls f on each sub-form, uses f's return value in place of the original. Recognizes all Clojure data structures. Consumes seqs as with doall.
postwalk-demo
Demonstrates the behavior of postwalk by printing each form as it is walked. Returns form.
postwalk-replace
Recursively transforms form by replacing keys in smap with their values. Like clojure/replace but works on any data structure. Does replacement at the leaves of the tree first.
prewalk
Like postwalk, but does pre-order traversal.
prewalk-demo
Demonstrates the behavior of prewalk by printing each form as it is walked. Returns form.
prewalk-replace
Recursively transforms form by replacing keys in smap with their values. Like clojure/replace but works on any data structure. Does replacement at the root of the tree first.

s

stringify-keys
Recursively transforms all map keys from keywords to strings.

w

walk
Traverses form, an arbitrary data structure. inner and outer are functions. Applies inner to each element of form, building up a data structure of the same type, then applies outer to the result. Recognizes all Clojure data structures. Consumes seqs as with doall.