Falsche Reihenfolge der E / A-Aktionen mit putStr und getLine

Ich habe folgenden Code:

main = do
    putStr "Test input : "
    content <- getLine
    putStrLn content

Wenn ich es laufen lasse (mitrunhaskell) oder kompiliere es (ghc 6.10.4) das ergebnis sieht so aus:

asd
Test input : asd

Warum istTest input : asd wird nachher gedrucktasd?

Im Codebeispiel aufhttp://learnyouahaskell.com/, die verwendetputStr, dasgetLineDie präsentierte Ausgabe unterscheidet sich von meiner. Wenn ich benutzeputStrLn Das Programm funktioniert wie erwartet (Drucken, dann Eingabeaufforderung und Drucken).

Ist es ein Fehler inghc, oder soll es so funktionieren?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage