If I understand you correctly, transduces transform something like
(map fn1 (map fn2 (map fn3 collection)))
into
(map (fn [x] (fn1 (fn2 (fn3 x)))) collection); Is that correct?
More idiomatic clojure:
(map (comp fn1 fn2 fn3) collection)
(map fn1 (map fn2 (map fn3 collection)))
into
(map (fn [x] (fn1 (fn2 (fn3 x)))) collection); Is that correct?
More idiomatic clojure:
(map (comp fn1 fn2 fn3) collection)
Funnily enough, Julia is where I came across the term transducers too, via the Transducers.jl package [2]. The article and the comments here now make me wonder what the difference is, between broadcast fusion and transducers.
[1] https://julialang.org/blog/2017/01/moredots/ [2] https://github.com/JuliaFolds2/Transducers.jl/