"zipping" two streams in the IO monad
Duncan Coutts
duncan@coutts.uklinux.net
Thu, 19 Sep 2002 21:28:31 +0100
On Thu, 19 Sep 2002 22:06:59 +0200
Nick Name <nick.name@inwind.it> wrote:
> In general, how does one implement a function like "getChanContents"
> wich returns an infinite list? Tell me just some pointer to information
> of course, I don't want an entire functional programming lesson :)
See unsafeInterleaveIO:
http://www.haskell.org/ghc/docs/latest/html/base/System.IO.Unsafe.html#unsafeInterleaveIO
This is how getContents is implemented so that it reads the file lazily.
It is "unsafe" in that it doesn't guarantee any particuar order of evaluation with respect to other IO operations.
Duncan