[Haskell-cafe] new Haskell hacker seeking peer review

Bernard Pope bjpop at cs.mu.OZ.AU
Fri Feb 18 05:45:34 EST 2005


On Fri, 2005-02-18 at 01:58 -0800, Sean Perry wrote:
> I am learning Haskell, so I decided to implement everyone's favorite,
> overused Unix command -- cat. Below is my simple implementation,
> comments about style, implementation, etc. are welcomed.
> 
> In particular, is my untilEOF idiomatically ok? Is there a better way to
> accomplish this? 

Haskell allows lazy IO. One example is hGetContents (and getContents
which is specialised for stdin):

   hGetContents :: Handle -> IO String

It looks like you get the whole file contents at once, but under the
hood it is read on demand.

This allows you to avoid the awkward tests for EOF.

Lazy IO is not without its problems, in particular it makes life hard
for the people who implement the compilers. You should look around the 
haskell list archives for the discussions about lazy that have happened
in the past.

Cheers,
Bernie.



More information about the Haskell-Cafe mailing list