什么是点管“.|” Haskell 中的运算符?

What is the dot pipe ".|" operator in Haskell?

我理解“。” (点)作为函数组合。我理解“|” (pipe) as "or," 保护介绍语法(来自 here ), but I 以我不理解的方式使用此运算符。

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

...建议像“$$”、“$=”、“=$=”、“=$”这样的语法来组合数据流中的管道。

我应该怎么称呼这个“.|”这个运算符及其工作原理?

不出所料,谷歌搜索“.| haskell”或“'dot pipe' haskell”或“'dot pipe' haskell 运算符管道”并不是很成功.

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

Replace the $=, =$, and =$= operators - which are all synonyms of each other - with the .| operator. This borrows intuition from the Unix shell, where the pipe operator denotes piping data from one process to another. The analogy holds really well for conduit, so why not borrow it? (We call all of these operators "fusion.")

顺便说一句,如果您需要查找运算符,Hayoo and Hoogle are the places to go. There is also Stackage Hoogle(感谢@duplode)可以让您查找特定解析器的运算符(这在这里特别有用,因为这是最近的更改) .

.|Conduit 库引入,是 fuse.

的同义词
fuse
  :: Monad m => Conduit a m b -> ConduitM b c m r -> ConduitM a c m r

fuse 用于 conduit 的组合,与 . 运算符用于函数组合的方式相同。 最后,.| 是一种新语法,用于替代 $==$=$=,它们本来就是同义词。