Можно создать дубликат:
Wrong IO actions order using putStr and getLineменю печати в терминале и выбор опции, как?
Я новичок в 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 все работает, как это suposed делать. Но если я скомпилировать это с:
GHC hello.hs
и запустить его в терминале, он не отображает строку «Выберите вариант:» прежде, чем попросить полукокса к . Я думаю, что это может быть вызвано из-за haskell ленивой природы, и я не знаю, как это исправить.
Любые идеи?
спасибо! просто решите его, сбросив буфер – carlos