什么是点管".|" Haskell的运营商?

Mit*_*ops 6 haskell conduit http-conduit

我明白 "." (点)作为功能组合.我理解"|" (管道)作为"或",警卫介绍语法(从这里 ),但我在http-conduit上看到了一个使用".|"的答案.以我不理解的方式使用此运算符.

我发现的其他管道参考,例如:

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

我该怎么称呼这个".|" 这个运算符,它是如何工作的?

可以预见的是,Google搜索".| haskell"或"'dot pipe'haskell"或"'dot pipe'haskell运营商管道"并不是很成功.

Ale*_*lec 9

这只是conduit用于融合的(最近的)新语法.不久前,作者写了一篇关于此事的博客文章.引用这篇文章,他提出(并最终做到了这一点)

更换$=,=$以及=$=使用-运营商-这是相互的所有同义词.|运营商.这借鉴了Unix shell的直觉,管道运算符表示从一个进程到另一个进程的管道数据.这个类比对管道来说非常好,所以为什么不借用呢?(我们将所有这些运算符称为"融合".)

顺便说一句,如果您需要查找运营商,可以选择HayooHoogle .还有Stackage Hoogle(感谢@duplode),它可以让你查找特定解析器的运算符(这在这里特别有用,因为这是最近的更改).

  • [Stackage Hoogle](https://www.stackage.org/lts-7.11/hoogle?q=.%7C)也是一个不错的选择 - 它默认使用比haskell.org更广泛的软件包. (3认同)
  • 嗯,有一个良好的开端:一小时后,这已经是"dot pipe haskell"的顶级谷歌结果我现在已经写了一个额外的时间,所以人们将被正确地重定向到Michael Snoyman宣布的这种语法链接在这个答案. (2认同)