Transducers.jl provides composable algorithms on "sequence" of inputs. They are called transducers, first introduced in Clojure language by Rich Hickey.
Using transducers is quite straightforward, especially if you already know similar concepts in iterator libraries:
using Transducers xf = Partition(7) |> Filter(x -> prod(x) % 11 == 0) |> Cat() |> Scan(+) mapfoldl(xf, +, 1:40)
However, the protocol used for the transducers is quite different from
iterators and results in a better performance for complex
compositions. Furthermore, some transducers support parallel
execution. If a transducer is composed of such transducers, it can be
automatically re-used both in sequential (
mapfoldl etc.) and
See more in the documentation.
about 13 hours ago