Haskell 导管和创建基于导管的库
我知道导管是一种解决流式数据问题的方法 在恒定内存中处理数据 我在hackage中看到很多库都附带了管道名称。 例如, 等等 那么,如何使一些普通的图书馆管道为基础呢?只需使用主 软件包,是否有资格提供流式数据解决方案 有问题吗 我试图挖掘csv管道的来源,但这是一种方式 太复杂了。(比完整的csv大很多Haskell 导管和创建基于导管的库,haskell,conduit,Haskell,Conduit,我知道导管是一种解决流式数据问题的方法 在恒定内存中处理数据 我在hackage中看到很多库都附带了管道名称。 例如, 等等 那么,如何使一些普通的图书馆管道为基础呢?只需使用主 软件包,是否有资格提供流式数据解决方案 有问题吗 我试图挖掘csv管道的来源,但这是一种方式 太复杂了。(比完整的csv大很多 解析器在RWH手册中实现。)这实际上也使用了导管,所以它也处理恒定内存中的流数据吗?是的,主导管包几乎就是您需要启动的所有东西 其思想是在conducts中组织工作流。放入一些元素-将一些元素
解析器在RWH手册中实现。)这实际上也使用了导管,所以它也处理恒定内存中的流数据吗?是的,主导管包几乎就是您需要启动的所有东西 其思想是在
conduct
s中组织工作流。放入一些元素-将一些元素推出。在基本层面上,您只需使用wait
和yield
就可以走得很远。只需在单子中使用它们,如下所示:
idConduit =
do mElt <- await
case mElt of
Nothing -> return ()
Just element ->
do yield element
idConduit
idconduct=
是否返回熔融物()
只是元素->
do屈服元素
导管
然后将它们放在Sink
和Source
之间,就像mySink$=myConduit1$=myConduit2$$mySource
一样,就完成了
如果您想用它们读取文件,也可以尝试
attoparsec-conduct
。如果您还没有看到,我建议从开始。