4 ms·
This is cool, but it's too bad folks here don't seem to have kept up with the evolution of iteratees/enumerators and free monadic computations (conduit/pipes/st
by KirinDave 8y ago
This is cool, but it's too bad folks here don't seem to have kept up with the evolution of iteratees/enumerators and free monadic computations (conduit/pipes/streaming) that other languages have pushed forwards as evolutions of the generator ideal.
The net result for common iteration ops is quite nice, and has options for reasonable optimizations in the world of lisp where macros are real.
- j88439h84 8y agoCould you explain or link to more info please? Sounds interesting.
- chriswarbo 8y agoI thought the natural "successor" to generators was delimited continuations, rather than iteratees or free monads/algebraic effects. Do such streaming concepts map well to eager, imperative code? I've only encountered them in Haskell, where laziness makes stuff like co-induction/recursion trivial.
- KirinDave 8y agoCertainly for conduit the laziness sort of goes away since you must sink a source and unless you do that to some observable effect the entire result disappears and no work is done at all. But certainly iteratees as an independent went out of fashion when conduit and pipes came on scene.