12.3. 端末を使った対話

デフォルトでは、GHCでビルドされたアプリケーションは開始時にコンソールウィンドウを開く。コンソールウィンドウなしのGUIのみのアプリケーションをビルドしたいなら、リンクの段階で--optl-mwindowsを使えば良い。

警告:WindowsのGUIのみのプログラムにはstdin、stdout、stderrがないので、通常のHaskellのIO関数を使うと、次のようなIO例外でプログラムが失敗する。

      Fail: <stdout>: hPutChar: failed (Bad file descriptor)

ただし、Debug.Trace.traceは問題ない。Windowsのデバッグ出力サポートを利用するからである。

Mingwにはreadlineライブラリが付属しているが、なぜかreadlineヘッダは付属していない。このため、GHCは(Hugsと同様)Windowsでの対話的入力時にreadlineを使わない。emacsのシェルバッファを使うことで近いものを得ることはできる。