1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
.. _process:
Processes
=========
A transducer in itself describes a transformation between abstract sequences,
but it is completely agnostic of the physical or temporal nature of that
sequence. We call a *process* the mechanism that actually feeds data in and out
out a transducer.
In this section, we describe several *processes* provided by the library. A few
of them are processes for processing C++ iterator based sequences and ranges.
Some, like `reductor`, may help implementing your own processes. For an example
of a third-party library that implements its own transducible components, check
the cursors module in Lager_.
.. _Lager: https://sinusoid.es/lager
reduce
------
.. doxygenfunction:: reduce
reduce_nested
-------------
.. doxygenfunction:: reduce_nested
transduce
---------
.. doxygenfunction:: transduce
run
---
.. doxygenfunction:: run
into
----
.. doxygenfunction:: into
.. doxygenfunction:: into_vector
sequence
--------
.. doxygengroup:: sequence
:content-only:
reductor
--------
Reductors encapsulate a *reducing function* and its *reduction state* in a more
object oriented interface. It can be useful when implementing your own
processes that supports transducers.
----
.. doxygengroup:: reductor
:content-only:
.. doxygenstruct:: zug::reductor_base
:members:
|