私は非常に奇妙な問題があります。 GHCiの中で実行されていると比較してコンパイルした場合、私はにコードをコンパイルするときに次のコードは、予想されるようにそれがないGHCiの中でそれを実行GHCiとコンパイルされたコードの動作が異なるようです。
main = do
putStr "Please enter your name: "
name <- getLine
putStr ("Hello, " ++ name ++ ", how are you?")
、しかし
Please enter your name: dglmoore
Hello, dglmoore, how are you?
、異なる結果を与えます
dglmoore
Please enter your name: Hello, dglmoore, how are you?
、それは私がすべての出力が生成される前に、私はこれで終わるの入力を提供する必要が実行可能私は前に同様の問題を見てきましたが、私は再びそれを見つけるように見えることはできません。
私は、Haskell Platformバージョン2012.2.0.0のghcバージョン7.4.1を使用しています。
誰かが異なる結果を出す理由と「正しい」ことを行うために両方のバージョンを取得する方法を知っていますか?
うわー、私はハスケルを2年間使ったことがありますが、これまでに問題に遭遇したことはありません。それは魅力のように働いた。 –
@DougMoore Haskellだけではなく、大部分のプログラミング言語で端末出力がラインバッファリングされていることに注意してください(一部の言語では入力を読み込むと自動的に出力がフラッシュされ、このエラーの原因は取り除かれます)。 – sepp2k