欢迎!请参阅关于页面,了解更多有关这样运作的信息。
clojure.walk模块的文档不明确说明哪些方法会通过数据结构进行递归,哪些方法仅操作最外层。clojure.walk/walk和clojure.walk/postwalk的文档都使用了“遍历”这个词的形式,但没有强调clojure.walk/walk与其他命名空间中的函数不同,它本身并不递归通过提供的形式。
评论者:maacl
clojure.walk/walk的可递归行为取决于传递给它的内部函数,并不是clojure.walk/walk本身的固有属性。如果您查看clojure.walk/prewalk和clojure.walk/postwalk的源代码,它们都使用walk实现,但传递了一个递归的内部函数。