有身份管道吗?

Mar*_*ark 7 haskell conduit

标题说明了一切.我已经看到有些人显然使用Data.Conduit.List.map id身份管道,但这是推荐的数据流传输方式吗?

xny*_*hps 6

编写身份管道的最简单方法可能是:

awaitForever yield
Run Code Online (Sandbox Code Playgroud)

因为这不需要额外的导入.

定义Data.Conduit.List.map非常相似:

mapC f = awaitForever $ yield . f
Run Code Online (Sandbox Code Playgroud)

(之间的差异mapC,并map有一些与CPP宏做定义的融合.)

当优化开启(-O1)时,两个选项看起来都会产生相同的代码,所以这只是一个品味问题.

  • 如果将`idC = awaitForever yield`添加到库中会很酷.也许我会为此创建一个PR. (3认同)