Input loop is part of Short Circuit's Console Program Basics selection.
Task

Read from a text stream either word-by-word or line-by-line until the stream runs out of data.

The stream will have an unknown amount of data on it.




import System.IO
 
readLines :: Handle -> IO [String]
readLines h = do
  s <- hGetContents h
  return $ lines s
 
readWords :: Handle -> IO [String]
readWords h = do
  s <- hGetContents h
  return $ words s