Let's compare the 3 styles of I/O we have encountered from a few perspectives:
Handle-based I/O |
Lazy I/O |
Iteratee I/O | |
---|---|---|---|
Processing |
Lazy |
Strict and incremental | |
What drives evaluation? |
Looping code |
Stream consumer |
Enumerator + Iterator |
Level of abstraction |
Low level |
High level |
High level |
Resource management, dealing with Exceptions |
Precise control |
No precise control |
Precise control |