如何在Haskell中创建和终止线程列表?
我不知道如何将运行的threadid放入列表中,然后杀死所有创建的线程 我尝试过一些monad操作,但我不理解ghci中的类型erros如何在Haskell中创建和终止线程列表?,haskell,Haskell,我不知道如何将运行的threadid放入列表中,然后杀死所有创建的线程 我尝试过一些monad操作,但我不理解ghci中的类型erros 导入控制。并发 main=do ts我认为您需要使用Control.Monad.mapM::(Monad m)=>(a->mb)->[a]->m[b] 例如: main = do ts <- mapM forkIO [(write 'a'), (write 'b')] putStrLn "Stop printing as and bs!"
导入控制。并发
main=do
ts我认为您需要使用Control.Monad.mapM::(Monad m)=>(a->mb)->[a]->m[b]
例如:
main = do
ts <- mapM forkIO [(write 'a'), (write 'b')]
putStrLn "Stop printing as and bs!"
_ <- mapM killThread ts -- or use mapM_ for no returning result effect
pure () -- return ()
where
write c = do
putChar c
write c
main=do
ts请在您的问题中包含类型错误消息。您的解决方案很好。唯一的错误是,在main函数中,最后一行必须是表达式<代码>do块中的最后一条语句必须是表达式