
On Sun, 06 Mar 2016 11:38:47 +0100, Nicolaas du Preez
Why does
liftM (take 5) $ sequence $ repeat getLine
not stop at reading only 5 lines from stdin but keeps on reading more?
What I’m really trying to achieve is to get input from the user until an empty line is read with the code below. But this doesn’t work as I expected, similar to the above.
liftM (takeWhile (/= "")) $ sequence $ repeat getLine :
It seems that sequence $ repeat getLine is too strict for this; to get five lines, you could use: sequence $ replicate 5 getLine . To read until the first empty line, I would write something in do-notation. Regards, Henk-Jan van Tuyl -- Folding@home What if you could share your unused computer power to help find a cure? In just 5 minutes you can join the world's biggest networked computer and get us closer sooner. Watch the video. http://folding.stanford.edu/ http://Van.Tuyl.eu/ http://members.chello.nl/hjgtuyl/tourdemonad.html Haskell programming --