ClojureDocs

命名空间

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.
clojure.walk 中的变量

k

keywordize-keys
递归转换字符串形式的所有映射键为关键字。

m

macroexpand-all
在 form 中递归执行所有可能的宏展开。

p

postwalk
对 form 执行深度优先的后序遍历。对每个子 form 调用 f,并将 f 的返回值用作原值的替代。识别所有 Clojure 数据结构。将 seq 视作 doall 消耗。
postwalk-demo
通过在遍历过程中打印每个 form 来演示 postwalk 的行为。返回 form。
postwalk-replace
通过将 smap 中的键替换为其值,递归转换 form。与 clojure/replace 类似,但适用于任何数据结构。首先在树的叶子处进行替换。
prewalk
与 postwalk 类似,但执行前序遍历。
prewalk-demo
通过在遍历过程中打印每个 form 来演示 prewalk 的行为。返回 form。
prewalk-replace
通过将 smap 中的键替换为其值,递归转换 form。与 clojure/replace 类似,但适用于任何数据结构。首先在树的根处进行替换。

s

stringify-keys
递归转换所有映射键,从关键字转换为字符串。

w

遍历
遍历 form,一个任意的数据结构。inner 和 outer 都是函数。将 inner 应用于 form 的每个元素,构建类似类型的再结构,然后将 outer 应用于结果。识别所有 Clojure 数据结构。将 seq 视作 doall 消耗。