
On Sun, Feb 26, 2012 at 13:05, Alexander Batischev
The main idea behind that is if user entered more values then required, they won't be lost but instead consumed by subsequent reads (calls to getWord). That's how scanf() in C and 'cin >>' in C++ behave, and I'm quite surprised that I can't do that in Haskell.
Almost every time I have used non-line-oriented I/O in a basic terminal I/O context, I have had to go back and rewrite it to be line-oriented. It's too easy to get yourself into odd issues where the tty line buffer and your program's notion of said buffer don't agree (if the terminal is in "icanon" mode) or discover you need backspace to work (if not). If you absolutely insist on shooting yourself in the foot this way in Haskell, it can be done; but there is no reason Haskell should make it *easy* to do so. That's C's superpower. :) -- brandon s allbery allbery.b@gmail.com wandering unix systems administrator (available) (412) 475-9364 vm/sms