std.lib.walk

keyword-spearify-keys

added in 4.0

(keyword-spearify-keys m)

recursively transfroms all map keys to spearcase

(keyword-spearify-keys {“a_b_c” {“e_f_g” 1}}) => {:a-b-c {:e-f-g 1}}

keywordize-keys

added in 3.0

(keywordize-keys m)

Recursively transforms all map keys from strings to keywords.

macroexpand-all

added in 3.0

(macroexpand-all form)

Recursively performs all possible macroexpansions in form.

postwalk

added in 3.0

(postwalk f form)

Performs a depth-first, post-order traversal of form

postwalk-replace

added in 3.0

(postwalk-replace smap form)

Recursively transforms form by replacing keys in smap with their values.

prewalk

added in 3.0

(prewalk f form)

Like postwalk, but does pre-order traversal.

prewalk-replace

added in 3.0

(prewalk-replace smap form)

Recursively transforms form by replacing keys in smap with their values.

string-snakify-keys

added in 4.0

(string-snakify-keys m)

recursively transforms keyword to string keys

(string-snakify-keys {:a-b-c {:e-f-g 1}}) => {“a_b_c” {“e_f_g” 1}}

stringify-keys

added in 3.0

(stringify-keys m)

Recursively transforms all map keys from keywords to strings.

walk

added in 3.0

(walk inner outer form)

Traverses form, an arbitrary data structure

walk:contains

added in 4.0

(walk:contains pred form)

recursively walks form to check for containment

walk:find

added in 4.0

(walk:find pred form)

recursively walks to find all matching forms

walk:keep

added in 4.0

(walk:keep f form)

recursively walks and keeps all processed forms