CrossClj

1.10.0-alpha4 docs

SourceDocs



RECENT
    VARS
    keywordize-keys
    macroexpand-all
    postwalk
    postwalk-demo
    postwalk-replace
    prewalk
    prewalk-demo
    prewalk-replace
    stringify-keys
    walk

    « Index of all namespaces of this project

    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.

    — Stuart Sierra

    (keywordize-keys m)
    Recursively transforms all map keys from strings to keywords.
    
    (macroexpand-all form)
    Recursively performs all possible macroexpansions in form.
    
    (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. Consumes seqs as with doall.
    (postwalk-demo form)
    Demonstrates the behavior of postwalk by printing each form as it is
    walked.  Returns form.
    (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.
    (prewalk f form)
    Like postwalk, but does pre-order traversal.
    
    (prewalk-demo form)
    Demonstrates the behavior of prewalk by printing each form as it is
    walked.  Returns form.
    (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.
    (stringify-keys m)
    Recursively transforms all map keys from keywords to strings.
    
    (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. Consumes seqs as with doall.