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

Nob*_*bbZ 2 haskell state-monad monad-transformers conduit io-monad

我想使用管道从文件中读取,然后将其流式传输到tokenizer.罪魁祸首是,即使是相同的字符序列也可能会产生不同的令牌,具体取决于之前的输入.

所以,我怎么能处理State单一Conduit其间一堆IO的?

只是写入Conduit Char (State TokenizerStateType) Token会产生错误类型的几个错误(IO想要,State得到错误类型).

由于我不在自己的计算机上,所以我不能提供一个不工作的最小例子,但是只要我有ghc,我就会添加一个.

Mic*_*man 5

我建议使用a Conduit Char (StateT TokenizerStateType IO),并liftIO在必要时使用它来执行IO操作.

  • 好吧,我不得不在另外的`ResourceT`中扭曲它,但它现在有效.所以类型现在是`Conduit Char(ResourceT(StateT TokenizerStateType IO))Token` (4认同)