Re:Clojure's Transducers are as fundamental as function comp...
by tel on Monday September 01, 2014 @10:42AM
(#8253061)
If you throw the result away in pure code then you may as well have never computed it: the second result holds only.
In an impure setting none of the math above holds.
Edit: note that this doesn't mean you have to throw away local or global state. You can recapture that by using state machine transformers or even Kleisli state machine transformers (although that gets pretty heavy!)
I ran this example through Clojure in let's write a transducer, and it plain doesn't work; I think the mapping given above works for all transducers that are actually valid, but I think the type definition allows for broken ones.
Again, I'm not sure & still learning, so please explain if I've gone wrong here.