gpt4 book ai didi

haskell - 管道:只读来源可能吗?

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

假设我有一个源 keypads::Producer IO Keypad 生成敏感数据流,例如一次性键盘。

现在,如果我的库公开了keypads,最终用户可能会将keypads连接到两个接收器,我们称它们为good bad,其中 bad 请求一个值并读取它,但随后通过 leftover 将其返回上游。稍后,good 接收器可能会使用之前由 bad 读取的相同键盘。最终用户可能不会注意到这种情况,例如,如果 goodbad 是由外部库提供的。

有什么方法可以在丢弃剩余数据的管道中设计只读源吗?

(我读过 here,它不可能禁用重复使用剩菜,但由于我是管道的新手,也许有一种不同的方式来设计我没有看到的架构。)

最佳答案

我可以想到两种选择:

  1. map id Conduit 包裹 bad 以防止残留物传播。我认为您的代码看起来像这样:

    keypads $$ (CL.map id =$= bad) >> good
  2. 下降到 Pipe 抽象层并在 bad 上调用 injectLeftovers 以确保在那里消耗所有剩余物丢弃。

我猜 (1) 是您需要的方法。

关于haskell - 管道:只读来源可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25615908/

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