I looked at the code of map, and the last transducer arity
[result input & inputs]
looks like dead code to me, as I've not found a way to call that from a transducer chain. Or could someone please enlighten me on how to use that -- I'd love to have transducers work on multiple inputs (like the normal map) without resorting to some Iterator hacking...
defn map
"Returns a lazy sequence consisting of the result of applying f to
the set of first items of each coll, followed by applying f to the
set of second items in each coll, until any one of the colls is
exhausted. Any remaining items in other colls are ignored. Function
f should accept number-of-colls arguments. Returns a transducer when
no collection is provided."
{:added "1.0"
:static true}
([f]
(fn [rf]
(fn
([] (rf))
([result] (rf result))
([result input]
(rf result (f input)))
([result input & inputs]
(rf result (apply f input inputs))))))(sequence
(map vector)
[1 2 3]
[:a :b :c]
'[x y z])
=> ([1 :a x] [2 :b y] [3 :c z])