haskell - 如何从输入文件流式传输到具有状态的管道

标签 haskell monad-transformers state-monad conduit io-monad

我想使用管道从文件中读取,然后将其流式传输到标记生成器中。罪魁祸首是,即使是相同的字符序列也可能根据先前的输入产生不同的标记。

那么我如何在一堆IO之间的单个Conduit中处理State

仅仅编写Conduit Char (State TokenizerStateType) Token确实会产生一些错误类型的错误(需要IO,状态得到错误类型)。

由于我不在自己的计算机上,所以我无法提供一个不工作的最小示例,但我会在 ghc 可用后立即添加一个示例。

最佳答案

我建议使用 Conduit Char (StateT TokenizerStateType IO) ,并使用liftIO根据需要执行 IO行动。

关于haskell - 如何从输入文件流式传输到具有状态的管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24527968/

相关文章:

scala - 通过 `State` 映射 `Lens`

haskell - Haskell 中的逆向因果关系 : From Tardis to RevState

linux - 检查两个目录是否在haskell中的同一文件系统上

haskell - 在 Haskell 中使用 map

haskell - 具有更大域的 Euler #4

haskell - 重复调用 Haskell monad

Haskell:在 FreeMonad 解释器中使用 MonadState 进行内存

haskell - 异常和monad转换器

haskell - 无压缩单子(monad)变压器

monads - 使用理由>>