语法$$在Haskell中的含义是什么?

时间:2011-12-22 13:49:16

标签: haskell syntax

"哎,"你可能会想......"另一个语法问题,这里让我谷歌那个为你noob。"可惜!我用Google搜索了,我仍然难过!

在yesod博客的代码中找到

import System.IO
import Data.Enumerator
import Data.Enumerator.Binary

main =
    withFile "output.txt" WriteMode $ \output ->
    run_ $ enumFile "input.txt" $$ iterHandle output 

然而" $$"操作员对我来说是新手。 Haskell 2010报告仅提及它一次作为运营商符号。它有什么作用?

3 个答案:

答案 0 :(得分:20)

在Haskell中,像$$这样的运算符不是语法的一部分,它们是用户可定义的函数。因此,您需要查找Yesod的 API文档以查看$$是什么。特别是,您示例中的函数$$记录为here

答案 1 :(得分:6)

Hoogle,这很不错,但遗憾的是不知道很多包。

Hayoo了解更多,但它的界面看起来很古怪,而且它似乎没有像hoogle那样提供命令行工具。

如果你知道你正在处理什么包,你可以直接转到它的文档 - 例如。 docs of the enumerator package,模块列表位于底部。此外,这些文档始终具有index,并允许您通过链接查看源代码。

作为最后的手段,请使用cabal unpack enumerator并通过代码grep。

答案 2 :(得分:2)

只需使用hoogle并确保告诉它您正在使用哪些软件包 - 它运行正常。

http://haskell.org/hoogle/?hoogle=%28%24%24%29+%2Benumerator