> Lazy I/O *sounds* safe.
> And most of the alternatives (like conduits) hurt my head,
> so it is really *really* tempting to stay with lazy I/O and
> think I'm doing something safe.

Well, conduit was created for the sake of a web framework. I think all
web frameworks, in whatever language, are quite complex, with a steep
learning curve. As to alternatives -- this is may be the issue of
familiarity or the availability of a nice library of combinators.

Here is the example from my FLOPS talk: count the number of words
"the" in a file.

Lazy IO:

run_countTHEL fname = 
 readFile fname >>= print . length . filter (=="the") . words

Iteratee IO:

run_countTHEI fname = 
  print =<< fileL fname >$< wordsL >$< filterL (=="the") >$< count_i

The same structure of computation and the same size (and the same
incrementality). But there is even a simple way (when it applies):
generators. All languages that tried generators so far (starying from
CLU and Icon) have used them to great success.

> Derek Lowe has a list of "Things I Won't Work With".
> http://pipeline.corante.com/archives/things_i_wont_work_with/
This is a really fun site indeed.



_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to