"interact" behaves oddly if used interactively
Thomas Hallgren
hallgren at cse.ogi.edu
Thu Oct 2 17:08:51 EDT 2003
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
More information about the Haskell-Cafe
mailing list