我找到了和在互联网上的定义,但我找不到和的实际实现.我确实在我的计算机上搜索了某种前奏的haskell文件,但它没有返回任何可以在文本编辑器中打开的内容.
Gab*_*lez 19
您可以使用Hoogle搜索Haskell函数,如下所示:
http://www.haskell.org/hoogle/?hoogle=and
函数链接将您带到定义函数的库模块,在这种情况下,链接and
将我们带到此处:
http://hackage.haskell.org/packages/archive/base/latest/doc/html/Prelude.html#v:and
然后单击Source
函数名称右侧的链接,它将转到该函数的源.对于and
它的情况,我们链接到这里:
http://hackage.haskell.org/packages/archive/base/latest/doc/html/src/GHC-List.html#and
and :: [Bool] -> Bool
or :: [Bool] -> Bool
#ifdef USE_REPORT_PRELUDE
and = foldr (&&) True
or = foldr (||) False
#else
and [] = True
and (x:xs) = x && and xs
or [] = False
or (x:xs) = x || or xs
#endif
Run Code Online (Sandbox Code Playgroud)
你会看到and
实际上有两个定义.一个是标准前置定义,只有在使用USE_REPORT_PRELUDE
标志进行编译时才会启用,另一个是Prelude通常编译的定义,通常会进行更优化.
归档时间: |
|
查看次数: |
298 次 |
最近记录: |