John Meacham wrote:

personally, I think the easiest solution would be to punt the whole
issue by having:

getContents lazily read the file if it is mmapable or a pipe

eagerly slurp the whole file if it refers to a tty


I think this kind of irregular behaviour would make the IO functions even more difficult to understand. Why should some invokations of the same program exhibit utterly different space/time behaviour from others?!

mycomputer% ./myprogram
mycomputer% cat | ./myprogram
mycomputer% ./myprogram <myfile
mycomputer% luit ./myprogram

of course this makes 'interact' not really interactive,

Exactly, it defeats the whole purpose of the interact function (to provide support for Landin-stream IO), so you might just as well remove it completely...

--
Thomas H



_______________________________________________
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to