在 Haskell 中,有两种主要的方法来查找函数信息。
像Hoogle和Stackage这样的网站。这些网站提供两种主要类型的搜索:
搜索函数的名称。例如,这里是在 Hoogle 上搜索一个名为
catMaybes
.此搜索返回
catMaybes
函数的类型,以及定义它的包和模块。这种搜索的主要用例是当您看到某个函数在某处使用并且您想知道它的类型以及它在哪个包中定义时。
搜索函数的类型。例如,这里是在 Hoogle 上搜索类型为 的函数
[Maybe a] -> [a]
。此搜索返回多个具有相似类型的函数,其中第一个是
catMaybes
. 它还返回catMaybes
定义的包和模块。此类搜索的主要用例发生在您编写代码时。你知道你需要的函数的类型,你想知道它是否已经在某个地方定义了。例如,您有一个
Maybe
s 列表,并且您希望返回一个Nothing
删除了所有 s 的列表。您知道该函数将具有 type[Maybe a] -> [a]
。
直接从
ghci
. 在中,只要该函数已经在您的环境中,就可以通过命令ghci
轻松获取有关函数的信息。:info
例如,这里是一个
ghci
展示如何获取函数信息的会话catMaybes
。请注意如何必须首先导入Data.Maybes
模块:> import Data.Maybe > :info catMaybes catMaybes :: [Maybe a] -> [a] -- Defined in ‘Data.Maybe’ >
:info
显示了的类型catMaybes
和定义的位置。
在 OCaml 中,哪些站点/工具可用于按名称或类型搜索函数?
例如,我正在阅读Real World OCaml。我遇到了一些使用该|>
函数的代码。我想知道是否有一个功能<|
可以以相反的方式进行组合。但是,我不知道有什么方法可以搜索一个名为<|
. 另外,我不知道有什么方法可以确定在哪里|>
定义。
根据上面的链接代码,我想|>
要么必须在 Pervasives 中,要么在 Jane Street 的核心中的某个地方,但如果有一个工具可以给出确切的位置,那就太好了。