我在哪里可以找到软件包/模块的源代码?

时间:2017-08-19 18:49:56

标签: haskell haskell-platform

我想看一下模块中定义的函数代码,比如Data.List或Data.Map。

我可以用

导入Data.List模块
import Data.List

然后我可以使用函数nubsort

我想知道在哪里可以找到这些函数来查看它们的代码。

默认情况下安装的模块在哪个目录中?

PS:Windows 8.1,我安装了Haskell平台。

2 个答案:

答案 0 :(得分:2)

该目录包含已编译的模块,因此您无法在那里读取源代码。

您可以做的是在online documentation中找到您的功能,然后点击右侧的“来源”。

答案 1 :(得分:1)

作为@arrowd notes in his answer

  

该目录包含已编译的模块,因此您将无法   在此处阅读源代码。

可以直接浏览GHC repo(和its Github mirror),但是有一种更简单的方法:

  1. 使用HoogleStackage查找模块/功能所在的软件包

    请注意,HoogleStackage是区分大小写的。 (最好使用大写字母查找模块。)

    Hoogle中对<?xml version="1.0"?> <nwebsec> <httpHeaderSecurityModule xmlns="http://nwebsec.com/HttpHeaderSecurityModuleConfig.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <redirectValidation enabled="true"> <!-- omitted for brevity --> </redirectValidation> <securityHttpHeaders> <!-- omitted for brevity --> </securityHttpHeaders> </httpHeaderSecurityModule> </nwebsec> 的查询产生一个类似于以下列表的列表。 Stackage的样式略有不同,但基本知识是相同的(主要是因为它使用Hoogle进行查找)。结果标题下的绿色线显示了包含的

    的名称

    (1)个(小写)软件包和

    (2)个模块(大写)。

    可以有多个具有相同名称的功能,但是模块和软件包名称有助于选择正确的功能。

    Hoogle lookup

  2. 单击功能/模块名称

  3. 点击“ #Source”

    Hackage lookup