A friend of mine asked me why was I learning Haskell. To demonstrate the power of Haskell I wrote a small program which displayed a list of prime numbers:
ma
stdin
and stdout
are two different files that needn't have any connection. Take e.g. the Unix shell command grep
:
$ seq 1 100 | grep 2$ | less
seq 1 100
prints the numbers 1 to 100 to its stdout
which is grep
s stdin
(|
connects the stdout
of one command to the stdin
of an other). grep
then writes the lines that match the given regex to its stdout
which is less
s stdin
.
To force stdout
(or any other file) to be written use hFlush
from System.IO
:
hFlush stdout
This looks more like a buffering than a sequencing problem. What platform are you on? Have you tried forcing unbuffered output?
hSetBuffering stdout NoBuffering -- from System.IO