GHCi и скомпилированный код ведут себя по-разному

У меня очень странная проблема. Следующий код дает разные результаты при компиляции по сравнению с запуском в 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.

Кто-нибудь знает, почему они дают разные результаты и как я могу заставить обе версии делать «правильные» вещи?

8
задан Matvey Aksenov 13 August 2012 в 09:49
поделиться