haskell - 将 forkIO 推广到 MonadIO

标签 haskell

有什么办法可以制作forkIO优雅吗?

import Control.Monad.IO.Class (MonadIO)
import Control.Concurrent (ThreadId)

-- | Is this possible?
forkIO :: MonadIO m => m () -> m ThreadId
forkIO = undefined

我正在尝试使用一些 mtl 从函数内调用它单子(monad)类约束。我知道lifted-base但我不想有额外的MonadBaseControl IO约束在我的程序中冒出来。解决方案和/或建议将不胜感激。

最佳答案

MonadIO 无法完成,但可以用 MonadUnliftIO 完成,参见here .

并非所有具有 MonadIO 实例的东西也具有 MonadUnliftIO 实例,但根据您的需要,这可能就足够了。

关于haskell - 将 forkIO 推广到 MonadIO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50581052/

相关文章:

c - 使用 cabal 安装 ffmpeg-light

haskell - 快速检查有关长度索引列表的属性

haskell - 相当于 OCaml 中的 haskell 的 zipwith

list - Haskell List Concatenation vs. (head : tail) format

haskell - 消除 cabal 文件中的重复内容

haskell - 在haskell中结合两个readMaybe和getLine

haskell - 如何在 Haskell 中以隐藏的方式初始化状态(就像 PRNG 一样)?

regex - 区分 Haskell 中的空正则表达式匹配和无匹配

haskell - 这个斐波那契函数是如何内存的?

haskell - 我如何在 haskell 中拆分 "\n"?