gpt4 book ai didi

haskell - 管道和创建基于管道的库

转载 作者:行者123 更新时间:2023-12-02 00:00:46 26 4
gpt4 key购买 nike

我知道 Conduit 是流数据问题的解决方案在常量内存中处理数据。

我在 hackage 中看到很多库都附有管道名称。一些例子是 cvs-conduit , zlib-conduit , attoparsec-conduit ,等

那么,如何让一些普通的图书馆基于管道呢?只需使用主要的 conduit包,是否有资格提供流式数据的解决方案问题?

我试图深入了解 csv-conduit 的源代码,这是一种方式太复杂了。 (比完整的 csv 大得多(大得多)RWH 书中实现的解析器。)还有这个 github library实际上使用了 Conduit,那么它是否也处理常量内存中的流数据?

最佳答案

是的,main conduit package 几乎是您开始时需要的一切。

想法是您在 Conduit 中组织您的工作流程秒。拿一些元素 - 推出一些元素。在基本层面上,您可以通过使用 await 走得更远。和 yield .只需在 monad 中使用它们,就像这样:

idConduit =
do mElt <- await
case mElt of
Nothing -> return ()
Just element ->
do yield element
idConduit

然后你把它们放在 Sink 之间和 Source喜欢mySink $= myConduit1 $= myConduit2 $$ mySource你就完成了。

如果你想用它们读取文件,试试attoparsec-conduit

关于haskell - 管道和创建基于管道的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21550875/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com