我是一个haskell初学者。
我正在尝试制作一个通过终端显示菜单并要求用户引入选项的程序。这是代码:
main :: IO ()
main = do
putStrLn "0 <- quit"
putStrLn "1 <- Hello"
putStr "Choose an option: "
c <- getChar
case c of
'0' -> return ()
'1' -> putChar '\n' >> putStrLn "Hello World" >> main
当我在 ghci 解释器中使用这个模块时,一切都像它应该做的那样工作。但如果我编译这个:
ghc你好.hs
并在终端中运行它,它在要求引入字符之前不显示“选择一个选项:”行。我认为这可能是由于 haskell 懒惰的性质造成的,我不知道如何解决它。
有任何想法吗?