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