Control.Concurrentを使うとHaskellでもマルチスレッド処理ができます。 よく使う函数は(多分)以下の通り。 forkIO :: IO () -> IO ThreadId -- IO ()を渡すとその場で実行 killThread :: ThreadId -> IO () -- 指定のThreadをkillする threadDelay :: Int -> IO () -- スレッドを指定の時間[microsec]だけ停止する data MVar a -- スレッド内で使えるmutableな変数 newMVar :: a -> IO (MVar a) -- 変数を初期化 takeMVar :: MVar a -> IO a -- 変数の値を取り出す putMVar :: MVar a -> a -> IO () -- 変数に代入する import Control.Conc