问题标签 [haskell-pipes]
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 - 在haskell-pipes中分叉流
我无法通过带有haskell-pipes的管道引导流量。基本上,我分析了一堆文件,然后我必须要么
- 以人性化的方式将结果打印到终端
- 将结果编码为 JSON
选择的路径取决于命令行选项。
在第二种情况下,我必须输出一个左括号,然后是每个传入的值,后跟一个逗号,然后是一个右括号。当前insertCommas
从不终止,因此从不输出右括号。
haskell - 将 Pipes.Safe 与 IO 操作一起使用
我正在使用 Pipes.Files,它又依赖于 Pipes.Safe。我有这样的管道:
问题是类型analyze
是
而allFiles
有MonadSafe m
和MonadIO m
约束。理论上liftIO
应该解决这个问题,但我得到了这个错误:
还有第二个错误,我现在不知道如何解释。
编辑:这是其他类型的签名:
haskell - Haskell-pipes:如何使用 drawAll 来测试具有 MonadSafe 约束的生产者?
我有一个生产者,给定一个路径,它遍历文件系统产生 Haskell 文件的路径。它建立在管道文件之上:
现在我想用 Hspec 对其进行测试,但我发现很难将生产者转换为列表。MonadSafe m
如果不是因为那个导致很多类型错误的约束,它会更简单。这是我写的:
这是应该如何使用的:
编译测试会出现以下错误:
haskell - 如何检测 Haskell Pipe 中的最后一个块?
我有一个小型 Haskell Pipe
,可以打印出它运行了多少次:
一旦处理完最后一个块,我希望能够打印出一条消息,并可能执行其他任务。我该怎么做呢?
haskell - Why does Haskell Pipes "use () to close unused inputs and X (the uninhabited type) to close unused outputs"?
In the Pipes Tutorial, it says that:
The concrete type synonyms use
()
to close unused inputs andX
(the uninhabited type) to close unused outputs:
I'd like to understand why ()
and X
are used the way they are. Why not X
or ()
for both inputs and outputs?
haskell - Pipes.Concurrent:发送的信号比预期晚一键传递
我正在使用 Pipes.Concurrent 用 GTK 编写一个简短的 GUI 程序。这是一个扫雷游戏,所以我正在构建一个按钮网格。
我构建并连接我的按钮:
我将管道连接到:
它几乎按预期运行。但是如果我点击按钮 1,什么都不会发生。但是如果我按下按钮 23,它会将信息标签更新为“1..”。如果我单击另一个按钮,它将更新为“23..”,依此类推。
我怀疑要么我无法理解并发管道是如何在某个级别上工作的,要么是惰性 IO 正在做一些奇怪的事情。
csv - 使用管道 csv 解析 Latin-1 编码的内容?
我想pipes-csv
用来解析一些大型 CSV 文件,但事实证明这些 CSV 文件是 Latin-1 编码的,而且它所依赖pipes-csv
的库也假设为 UTF-8。cassava
这最终会产生我需要处理的解析错误。
我采用的方法是复制将保存 CSV 数据的记录,以便所有Text
字段都是ByteString
dup 中的字段。我解码到 dup,然后手动将 Latin-1 字符串翻译成 UTF-8 并创建最终记录。至少可以说不雅。
有没有更好的办法?
根据丹尼尔的建议,这是我目前所拥有的:
它用不必要的记录换取不必要的文本重新编码,但这是一种改进。我不认为有办法做到这一点而不做这些不必要的事情?
haskell - 保持状态的管道
我正在尝试使用pipes
.
目前我有这个。但是不知道如何编写一个维护状态的管道。
如何让buzzHash保存上一个值并将其用于计算下一个值?初始状态值应为 0。
haskell - Haskell Pipes:如何对生产者的输出进行排序?
我有以下代码:
它打印目录中的所有文件top
。如何在打印之前对输出进行排序?我是否需要编写一个消费者,首先将输出“排出”到一个列表中,然后对其进行排序?我正在使用管道 4.1.4。
haskell - 在 monad 转换器中捕获异常
我正在使用 haskell-pipes 递归遍历目录并打印文件。如何处理来自 Producer 的异常,它是一个 monad 转换器?bracket
在这种情况下handle
不工作。