私は非常に奇妙な問題を抱えています。次のコードは、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?
私は以前に同様の問題を見たことがありますが、私はそれを再び見つけることができないようです。
Haskellプラットフォームバージョン2012.2.0.0のghcバージョン7.4.1を使用しています。
なぜそれらが異なる結果をもたらすのか、そしてどうすれば両方のバージョンに「正しい」ことをさせることができるのか、誰かが知っていますか?