什么是点管“。|” Haskell的运营商?

时间:2016-12-03 23:17:18

标签: haskell conduit http-conduit

我理解“。” (点)作为功能组合。我理解“|” (管道)作为“或”,警卫介绍语法(来自here),但我saw an answer on http-conduits using ".|"以我不理解的方式使用此运算符。

我找到的管道的其他参考资料,例如:

...建议语法如“$$”,“$ =”,“= $ =”,“= $”用于组合数据流中的管道。

我该怎么称呼这个“。|”这个运算符以及它是如何工作的?

可以预见,谷歌搜索“。| haskell”或“'dot pipe'haskell”或“'dot pipe'haskell operator conduit”并不是很成功。

1 个答案:

答案 0 :(得分:9)

这只是conduit用于融合的(最近)新语法。不久前,作者写了一篇blog-post。引用这篇文章,他提议(并最终做到这一点)

  

替换$==$=$=运算符 - 这些运算符都是每个运算符的同义词   其他 - 使用.|运算符。这借鉴了Unix的直觉   shell,管道运算符表示从一个进程到的管道数据   另一个。这个类比对于管道来说非常好,所以为什么不借用   它? (我们称所有这些运算符为#34; fusion。")

顺便说一句,如果您需要查找运营商,HayooHoogle就是您要去的地方。还有Stackage Hoogle(感谢@duplode),它允许您查找特定解析器的运算符(这在此处特别有用,因为这是最近的更改)。