我理解“。” (点)作为功能组合。我理解“|” (管道)作为“或”,警卫介绍语法(来自here),但我saw an answer on http-conduits using ".|"以我不理解的方式使用此运算符。
我找到的管道的其他参考资料,例如:
...建议语法如“$$”,“$ =”,“= $ =”,“= $”用于组合数据流中的管道。
我该怎么称呼这个“。|”这个运算符以及它是如何工作的?
可以预见,谷歌搜索“。| haskell”或“'dot pipe'haskell”或“'dot pipe'haskell operator conduit”并不是很成功。
答案 0 :(得分:9)
这只是conduit
用于融合的(最近)新语法。不久前,作者写了一篇blog-post。引用这篇文章,他提议(并最终做到这一点)
替换
$=
,=$
和=$=
运算符 - 这些运算符都是每个运算符的同义词 其他 - 使用.|
运算符。这借鉴了Unix的直觉 shell,管道运算符表示从一个进程到的管道数据 另一个。这个类比对于管道来说非常好,所以为什么不借用 它? (我们称所有这些运算符为#34; fusion。")
顺便说一句,如果您需要查找运营商,Hayoo和Hoogle就是您要去的地方。还有Stackage Hoogle(感谢@duplode),它允许您查找特定解析器的运算符(这在此处特别有用,因为这是最近的更改)。