merge remote-tracking branch 'shellhead/walk-doc'
This commit is contained in:
commit
20c2cfb0b1
@ -7,8 +7,9 @@ Contents:
|
|||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 3
|
:maxdepth: 3
|
||||||
|
|
||||||
|
alias
|
||||||
anaphoric
|
anaphoric
|
||||||
|
flow
|
||||||
loop
|
loop
|
||||||
multi
|
multi
|
||||||
flow
|
walk
|
||||||
alias
|
|
||||||
|
94
docs/contrib/walk.rst
Normal file
94
docs/contrib/walk.rst
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
====
|
||||||
|
walk
|
||||||
|
====
|
||||||
|
|
||||||
|
.. versionadded:: 0.11.0
|
||||||
|
|
||||||
|
Functions
|
||||||
|
=========
|
||||||
|
|
||||||
|
.. _walk:
|
||||||
|
|
||||||
|
walk
|
||||||
|
-----
|
||||||
|
|
||||||
|
Usage: `(walk inner outer form)`
|
||||||
|
|
||||||
|
``walk`` traverses ``form``, an arbitrary data structure. Applies
|
||||||
|
``inner`` to each element of form, building up a data structure of the
|
||||||
|
same type. Applies ``outer`` to the result.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
.. code-block:: hy
|
||||||
|
|
||||||
|
=> (import [hy.contrib.walk [walk]])
|
||||||
|
=> (setv a '(a b c d e f))
|
||||||
|
=> (walk ord identity a)
|
||||||
|
(97 98 99 100 101 102)
|
||||||
|
=> (walk ord first a)
|
||||||
|
97
|
||||||
|
|
||||||
|
postwalk
|
||||||
|
---------
|
||||||
|
|
||||||
|
.. _postwalk:
|
||||||
|
|
||||||
|
Usage: `(postwalk f form)`
|
||||||
|
|
||||||
|
Performs depth-first, post-order traversal of ``form``. Calls ``f`` on
|
||||||
|
each sub-form, uses ``f`` 's return value in place of the original.
|
||||||
|
|
||||||
|
.. code-block:: hy
|
||||||
|
|
||||||
|
=> (import [hy.contrib.walk [postwalk]])
|
||||||
|
=> (def trail '([1 2 3] [4 [5 6 [7]]]))
|
||||||
|
=> (defn walking [x]
|
||||||
|
(print "Walking:" x)
|
||||||
|
x )
|
||||||
|
=> (postwalk walking trail)
|
||||||
|
Walking: 1
|
||||||
|
Walking: 2
|
||||||
|
Walking: 3
|
||||||
|
Walking: (1 2 3)
|
||||||
|
Walking: 4
|
||||||
|
Walking: 5
|
||||||
|
Walking: 6
|
||||||
|
Walking: 7
|
||||||
|
Walking: (7)
|
||||||
|
Walking: (5 6 [7])
|
||||||
|
Walking: (4 [5 6 [7]])
|
||||||
|
Walking: ([1 2 3] [4 [5 6 [7]]])
|
||||||
|
([1 2 3] [4 [5 6 [7]]])
|
||||||
|
|
||||||
|
prewalk
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. _prewalk:
|
||||||
|
|
||||||
|
Usage: `(prewalk f form)`
|
||||||
|
|
||||||
|
Performs depth-first, pre-order traversal of ``form``. Calls ``f`` on
|
||||||
|
each sub-form, uses ``f`` 's return value in place of the original.
|
||||||
|
|
||||||
|
.. code-block:: hy
|
||||||
|
|
||||||
|
=> (import [hy.contrib.walk [prewalk]])
|
||||||
|
=> (def trail '([1 2 3] [4 [5 6 [7]]]))
|
||||||
|
=> (defn walking [x]
|
||||||
|
(print "Walking:" x)
|
||||||
|
x )
|
||||||
|
=> (prewalk walking trail)
|
||||||
|
Walking: ([1 2 3] [4 [5 6 [7]]])
|
||||||
|
Walking: [1 2 3]
|
||||||
|
Walking: 1
|
||||||
|
Walking: 2
|
||||||
|
Walking: 3
|
||||||
|
Walking: [4 [5 6 [7]]]
|
||||||
|
Walking: 4
|
||||||
|
Walking: [5 6 [7]]
|
||||||
|
Walking: 5
|
||||||
|
Walking: 6
|
||||||
|
Walking: [7]
|
||||||
|
Walking: 7
|
||||||
|
([1 2 3] [4 [5 6 [7]]])
|
Loading…
Reference in New Issue
Block a user