获取模块内容

时间:2012-02-18 16:43:55

标签: haskell

:browse:info:type GHCi命令非常方便。

是否有可能在Haskell程序中获得相同的程序信息?也就是说,从模块中获取导出的函数,类型等等。

3 个答案:

答案 0 :(得分:5)

:browse - 编译Haskell程序时,不会保留(有用的)有关哪个模块来自哪个模块的信息,因此您的程序将无法访问该信息。

:type - 除非您使用Data.Typeable,否则在运行时根本看不到类型。 Haskell中的类型主要是编译器检查代码的正确性/安全性。

:info - 见上文。

答案 1 :(得分:3)

在编译时获取模块的功能 - language-haskell-extract包可能对您有意义。它可以帮助您根据正则表达式提取函数。

http://hackage.haskell.org/package/language-haskell-extract-0.2.1

答案 2 :(得分:0)

Daniel Fischer commented

  

您可以使用GHC API。我不知道一种更简单的方法。

似乎很蠢,但工作正常。我想这就是:info在GHCi中的工作原理。谢谢你的建议。