У меня есть следующий код:
main = do
putStr "Test input : "
content <- getLine
putStrLn content
Когда я запустил его (с помощью runhaskell) или скомпилировал его (ghc 6.10.4), результат будет таким:
asd
Test input : asd
Почему Test input : asd печатается после asd?
В образце кода http://learnyouahaskell.com/, который использует putStr, представленный вывод getLine отличается от моего. Когда я использую putStrLn, программа работает как ожидалось (печать, затем запрос и печать).
Является ли это ошибкой в ghc, или так оно и должно работать?