我正在使用Haskell 2010.1.0.0.1和GHC 6.在GHCi提示符下键入:t
,然后输入函数名称,向我们显示函数的类型。有没有办法查看函数定义?
答案 0 :(得分:39)
目前不是。
最接近你想要的命令是:info
像这样::信息名称......
显示有关给定名称的信息。例如,如果name是一个类,那么将打印类方法及其类型;如果name是一个类型构造函数,那么它的定义将被打印出来;如果name是一个函数,那么它的类型将被打印。如果已从源文件加载名称,则GHCi还将在源中显示其定义的位置。
对于类型和类,GHCi还总结了提及它们的实例。为避免显示不相关的信息,仅在(a)其头部提及名称时显示实例,并且(b)实例中提及的所有其他内容由于以下原因而在范围内(合格或其他):load或:模块命令。
Prelude> :info ($)
($) :: (a -> b) -> a -> b -- Defined in GHC.Base
infixr 0 $
但是,您可以在Hackage上查看haddock工具生成的标识符源。
请注意,“?src”在#haskell IRC频道的lambdabot中是一个有效的命令,并且可以达到您所期望的效果。
> ?src ($)
> f $ x = f x
答案 1 :(得分:6)
不,不能那样做。 Haskell初学者可以做一些有趣的事情:
:browse
查找模块导出的所有定义:help
获得明显的结果答案 2 :(得分:5)
我不这么认为。您可以使用:i
获取更多信息(对于中缀运算符和数据结构等更有用),但不是定义:
ghci> :i repeat
repeat :: a -> [a] -- Defined in GHC.List
您可以使用hoogle快速查找标准库函数的文档,右侧有一个链接指向源代码。它仍然只需点击几下即可。