问题标签 [conduit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - “MonadIO m”和“MonadBaseControl IO m”有什么区别吗?
network-conduit中的函数runTCPClient具有以下签名:
MonadIO m
提供
并MonadBaseControl IO m
提供
没有明显的区别。它们提供相同的功能吗?如果是,为什么类型签名中有重复?如果不是,有什么区别?
sockets - 导管和插座:允许多个连接
conduit
下面是一些使用、network-conduit
和实现小型接收服务器的代码stm-conduit
。它在套接字上接收数据,然后通过 STM 通道将其流式传输到主线程。
(在实际应用程序中,来自套接字的数据流与其他一些数据流合并,这就是为什么我不在侦听器中直接处理它的原因)。
问题是,我曾期望它在主线程被杀死之前保持打开状态,而是在套接字上收到第一条消息后退出。我无法弄清楚它为什么这样做,除非它是接收器(在第 2 到最后一行)在看到第一个数据流的结尾时退出。我可以说服它不要这样做吗?有一些Conduit
关于使源可恢复的东西,但不是接收器。
haskell - 在 Network.HTTP.Conduit 中禁用 SSL/TLS 证书验证
我使用http-conduit
库版本 2.0+ 从http://
URL 获取内容:
运行此程序时,我收到此错误:
从错误消息中可以看出,问题是无法Network.HTTP.Conduit
正确验证服务器证书(在这种情况下,证书链中似乎存在问题)
如何更改上述代码以忽略证书错误(即根本不验证证书)?
haskell - Haskell bzlib-conduit/zlib-conduit example
Let's assume we create the file a.txt.gz
as follows:
I intend to use zlib-conduit
in order to emulate zcat
in Haskell.
I'm looking for a simple example that can also be applied to bzlib-conduit
.
Note: This question was answered immediately in a Q&A-Style. Therefore it intentionally does not show any research effort.
haskell - 导管和创建基于导管的库
我知道 Conduit 是一种解决流数据问题的解决方案,用于处理常量内存中的数据。
我在 hackage 中看到很多带有管道名称的库。一些例子是cvs-conduit、zlib-conduit、attoparsec-conduit等。
那么,如何制作一些基于普通库的管道呢?仅仅使用主管道 包,是否有资格解决流数据问题?
我试图深入研究 csv-conduit 的来源,它太复杂了。(比 RWH 书中实现的完整 csv 解析器大得多(大得多)。)此外,这个github 库实际上使用了 Conduit,那么它是否也可以处理恒定内存中的流数据?
haskell - 使用管道解析通过地图保留剩菜
我试图了解管道解析 3.0 如何处理除span
and之外的情况splitAt
,但无法完全弄清楚如何让事情正常进行。基本思想是我有一个同构,我想映射所有输入值以从 type 转换A
为 type B
。然后,我希望将所有剩菜从转换B
回A
. 我将如何做到这一点pipes-parse
?
为了比较,代码如下所示conduit
:
编辑:为了澄清,这是我上面代码的输出:
请注意,原始流的类型为A
. 我们正在转换B
并查看第一个元素,然后将接下来的 3 个元素作为 type A
,然后将以下三个作为B
,最后将其余的作为A
。
haskell - 单步导管
我想按照 ArrowChoice 的方式做一些事情,但要使用管道。我想等待一个 Either 值,然后将 Left 值传递给一个管道,将 Right 值传递给另一个,然后将结果合并回 Either 流。
大概这可以通过使内部管道像自动机一样来完成:将管道变成一个函数,该函数接受一个参数并返回一个产生的输出的单子列表:
输出列表的原因是导管可能为每个输入产生 0 个或多个输出。
我查看了 ResumableConduit 及其亲属,大概答案就在某处。但我不太明白它是如何完成的。
haskell - Incorporating Conduit to ordinary functions
I wrote a simple program in which I read a big XML file and do some processing on the contents of the file and then save the processed data in new file.
The original main function follows something like this:
But this code eats up the full memory and takes a huge time to finish. So, I decided to use conduit library for making the program run in constant memory.
But after reading the conduit tutorial, I still haven't got the idea how to make the above program use the features of conduit library.
I figured out that I can use conduit's sourceFile which can stream the content of the file. But then how to apply the function parseTags (which is a function from the TagSoup library) and other simple functions to the streamed content now ?
Edit: The entire code is here
haskell - 导管:提取结果数
我正在玩导管库,并编写了一段示例代码,用于在两个数字(2 和 3)出现在序列中时提取它们。以下是我的代码:
但是当我执行该main
函数时,我没有得到任何输出。我所期望的实际上是这样的:
知道我做错了什么吗?
haskell - 从文件中无限读取
我正在尝试从文件中读取一些不规则的输入(例如,可能不时出现的命令)。例如最初源文件是空的,我的程序已经启动。然后一个字符串被附加到文件中,我的程序必须读取这个字符串。
第一个幼稚的实现:
但它当然不能正常工作(首先是因为性能问题)。我怎样才能正确地实现这一点(也许使用管道)?