假设我想实现 Python 可迭代对象的拆分,而不列出每个块,类似于itertools.groupby ,其块是惰性的。 但我想在比键相等更复杂的条件下进行。 所以更像是一个解析器。 例如,假设我想在一个可迭代的整数中使用奇数作为分隔符。 比如more_itertools.split_at(lamb ...
假设我想实现 Python 可迭代对象的拆分,而不列出每个块,类似于itertools.groupby ,其块是惰性的。 但我想在比键相等更复杂的条件下进行。 所以更像是一个解析器。 例如,假设我想在一个可迭代的整数中使用奇数作为分隔符。 比如more_itertools.split_at(lamb ...
在Haskell Pipes中,假设我正在编写f:: Producer am ()并且我在关于m的 do 块内(编辑:这没有意义;我想要一个生产者 do 块)。 在这个 do 块中,我想在返回到我的 do 块之前从g:: Producer am ()产生。 我如何做到这一点? 在我的特殊情况下, ...
假设我想要 model,使用 Haskell 管道,Python Generator[int, None, None]保留一些内部 state。我应该使用Producer int (State s) ()还是StateT s (Producer int m) () ,其中m是我最终希望从消费者那里得 ...
我有一个制片人: p:: Producer Message IO r 。 我可以使用以下方法处理所有消息: runEffect $ for p processMessage 在哪里 processMessage:: Message -> Effect IO () 。 如何使用以下方法实现有 ...
我有一个生产者p类型为Producer Message IO (Producer SB.ByteString IO ()) 。 现在我需要选择性地跳过一些消息并选择性地处理一定数量的消息: 我无法使用来自 Pipes.Prelude 的take ,因为它返回()而我需要返回一个空的生产者。 我快速 ...
我有一个 Haskell function ,它给出了一个目录,从中递归地获取所有文件并将文件名写入文件。 这是一个简单的例子。 在下一步中,我必须通过使用文件内容的操作替换从文件到文本的映射( transf操作); 这显然是 IO monad 中的一个操作。 我对Pipe的了解非常有限; 我尝试 ...
假设我想将MyItem的 stream 保存到文件中(例如在 JSON 中)。 当文件达到一定的字节大小限制时,我想停止。 我想在 Haskell 中执行此操作...流式传输对我来说不是问题,更重要的是如何在将每个项目放入此文件后获取文件大小信息... ...
这个问题是关于 Haskell Pipes库的 背景: 在上一个问题中,我询问了如何使用管道形成循环, 我得到的答案是“不要那样做。改用request和response 。” 虽然有一个优秀且编写清晰的教程,用简单的英语涵盖了Producers 、 Consumers 、 Pipes和Effect ...
这个问题是关于 Haskell 库Pipes 的。 此问题与 2019 Advent of Code Day 11 (可能剧透警告)有关 我有两个Pipe Int Int mr brain和robot ,它们也需要在连续循环中相互传递信息。 这是输出brain需要去的输入robot的输出和robo ...
我想在我的代码中使用系统时间来记录从用户界面捕获数据的时间。 如何使用 Haskell 获取系统时间。 ...
我的目标是使最后产生的值等于 80 (40 + 40)(参见下面的代码)...import Pipes import Pipes.Prelude import Pipes.Lift import Control.Monad.State.Strict data Input = A Integer | ...
我可以让ZMQ订户在Haskell中工作,但希望能获得有关如何在Pipes中使用该数据的指导。 我写生产者的尝试在“堆栈生成”中失败,并出现以下错误: 无法将类型“代理X()c'0 c0(ZMQ z)”与“ ZMQ z”进行匹配 预期类型:ZMQ z() 实际类型:代 ...
上下文 :我正在CQRS中实现一个App,并且正在尝试优化命令的处理(基本上是通过汇总ID的1个流)... 问题 :我想拥有第一个流来接收所有命令,并通过它们的集合ID在不同线程上分派这些命令: 1)集合中的命令以串行方式处理 2)聚合独立(并行)处理其命令。 解决方案 : ...
withTimeout函数假设管道ConsoleEvent ,如果没有收到任何内容,则每隔s :: Int秒发送一次CeTimeout 。 相反,它无法在适当的时间发送CeTimeout事件。 如果大于s秒且原始事件丢失,则会将一个CeTimeout事件替换为其他事件。 此外,而不是一个C ...
我正在尝试构建一个Haskell CLI,它可以从stdin或类似这样的参数中读取字符串: 我将如何完成? ...
我正在开发一个1-10k线路的个人Haskell项目,我正在使用Pipes.Concurrent生成的工人内部使用各种IO库,例如Network.HTTP.Conduit。 我刚刚意识到其中一些IO库在边缘情况下抛出异常。 有没有办法让GHC给我关于未捕获异常的编译时警告? 找出库 ...
这个问题背后的动机是这种情况 - 我们有一个由Sum编码表示的值流。 让我们假设Either ByteString ByteString ,其中我们分别表示错误和良好状态的字节流。 现在,我们有另一个可以压缩ByteString流的函数。 是否可以在Either ByteString By ...
在下面的代码中,我试图将2个Producer s组合成1.所有类型都相同。 它们将由两个输入Producer的每一个组合在一个单独的线程中运行,并由Consumer ,将Consumer放入一个unagi chan(我使用unagi chan来提高性能)。 返回一个从chan读取的生产者。 ...
在Monad.Reader Issue 19中的“Coroutine Pipelines”文章中,作者定义了一个通用的Coroutine类型: 我注意到这种类型与free软件包中的FreeT类型非常相似: 似乎FreeT和Coroutine是同构的。 以下是从一个映射到另一个的 ...
我正在尝试进一步优化我的管道 - attoparsec解析器和存储,但无法获得更低的内存使用率。 给出account-parser.hs 用GHC 8.0.2编译( stack ghc -- -O2 -rtsopts -threaded -Wall account-parser.h ...