Как указать порядок выполнения блока do при использовании runhaskell?

В настоящее время я пытаюсь изучить Haskell IO и использую System.IO writeFile для редактирования текстового файла с этим кодом:

main = do
 putStr "Enter Some Text: "
 text <- getLine
 writeFile "text.txt" text
 putStrLn "Updated!"

В ghci это работает нормально, но когда я пытаюсь повторить это с помощью runhaskell, кажется, что сначала запускается функция 'text <- getLine', и он имеет следующий вывод (были введены первые две строки):

runhaskell EditFile.hs
hello
Enter Some Text: Updated!

Почему runhaskell не запускает функцию по порядку, и есть ли способ обойти это? (т.е. я могу заставить его напечатать "Введите текст: " перед тем, как получить пользовательский ввод?)

0 ответов

Другие вопросы по тегам