API for clojure.walk
-
by Stuart Sierra
Full namespace name:
clojure.walk
Overview
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.
Public Variables and Functions
keywordize-keys
function
Usage: (keywordize-keys m)
Recursively transforms all map keys from strings to keywords.
Source
macroexpand-all
function
Usage: (macroexpand-all form)
Recursively performs all possible macroexpansions in form.
Source
postwalk
function
Usage: (postwalk f form)
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 except sorted-map-by.
Consumes seqs as with doall.
Source
postwalk-demo
function
Usage: (postwalk-demo form)
Demonstrates the behavior of postwalk by printing each form as it is
walked. Returns form.
Source
postwalk-replace
function
Usage: (postwalk-replace smap form)
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.
Source
prewalk
function
Usage: (prewalk f form)
Like postwalk, but does pre-order traversal.
Source
prewalk-demo
function
Usage: (prewalk-demo form)
Demonstrates the behavior of prewalk by printing each form as it is
walked. Returns form.
Source
prewalk-replace
function
Usage: (prewalk-replace smap form)
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.
Source
stringify-keys
function
Usage: (stringify-keys m)
Recursively transforms all map keys from keywords to strings.
Source
walk
function
Usage: (walk inner outer form)
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 except sorted-map-by.
Consumes seqs as with doall.
Source