Read until end of stream in haskell

前端 未结 4 1089
别那么骄傲
别那么骄傲 2021-02-14 00:13

I\'m fairly new to Haskell, and I\'d like to keep reading lines from the console until the end of the stream, and outputting everything I get in upper case. So far, I\'ve got

4条回答
  •  耶瑟儿~
    2021-02-14 00:29

    Another option is to use when whose documentation can be found here:

    import System.IO (isEOF)
    import Data.Char (toUpper)
    import Control.Monad (forever, when)
    import System.Exit (exitSuccess)
    main = myLoop
    
    myLoop = forever $ do
                    done <- isEOF
                    when done $ putStrLn "Bye!" >> exitSuccess
                    inp <- getLine
                    putStrLn (map toUpper inp)
                    myLoop
    

    Otherwise, the answer is identical to the one by @dave4420.

提交回复
热议问题