У меня очень странная проблема. Следующий код дает разные результаты при компиляции по сравнению с запуском в ghci,
main = do
putStr "Please enter your name: "
name <- getLine
putStr ("Hello, " ++ name ++ ", how are you?")
При запуске в ghci он работает так, как и следовало ожидать,
Please enter your name: dglmoore
Hello, dglmoore, how are you?
Однако, когда я компилирую код в исполняемый файл, он требует, чтобы я предоставил ввод до того, как будет сгенерирован какой-либо вывод, поэтому я получаю это,
dglmoore
Please enter your name: Hello, dglmoore, how are you?
Я видел подобную проблему раньше, но я не могу найти ее снова.
Я использую ghc версии 7.4.1 из версии платформы Haskell 2012.2.0.0.
Кто-нибудь знает, почему они дают разные результаты и как я могу заставить обе версии делать «правильные» вещи?