【问题标题】:Accessing documentation for a function from Hoogle command line从 Hoogle 命令行访问函数的文档
【发布时间】:2015-02-05 03:53:03
【问题描述】:

the Hoogle website 上搜索函数时,会看到与之相关的文档,例如:

mod :: a -> a -> a            infixl 7

    integer modulus, satisfying

    (x `div` y)*y + (x `mod` y) == x

Hoogle 也作为命令行可执行文件存在。据我所知,它只显示了函数的签名:

~ ❯❯❯ hoogle --info Prelude.mod
Prelude mod :: Integral a => a -> a -> a

From package base
mod :: Integral a => a -> a -> a

有没有办法像在线版本一样通过命令行获取相关文档?

【问题讨论】:

  • 您在寻找纯文本版本的模块文档吗? AFAIK 黑线鳕只创建 HTML 文档。
  • 是的,我希望 CLI 中的内容与网站上的内容相同。
  • 旁注:这里有一些不错的hoogle配置youtube.com/…

标签: haskell hoogle


【解决方案1】:

使用-i 选项。如何获得默认命令的帮助并不明显(search);这是怎么做的:

$ hoogle search --help
Hoogle v4.2.41, (C) Neil Mitchell 2004-2012
http://haskell.org/hoogle

hoogle [search] [OPTIONS] [QUERY]
  Perform a search

Flags:
  -c --colour --color   Use colored output (requires ANSI terminal)
  -l --link             Give URL's for each result
  -i --info             Give extended information about the first result
  -e --exact            Match names exactly when searching
  -d --databases=DIR    Directories to search for databases
  -s --start=INT        Start displaying results from this point on (1 based)
  -n --count=INT        Maximum number of results to return
  -w --web[=MODE]       Operate as a web tool
  -r --repeat=INT       Run the search multiple times (for benchmarking)
Common flags:
  -? --help             Display help message
  -V --version          Print version information
     --numeric-version  Print just the version number
  -v --verbose          Loud verbosity
  -q --quiet            Quiet verbosity

【讨论】:

    【解决方案2】:

    使用 -i 标志,Hoogle 将显示查询的第一个结果及其 Haddock 描述:

    $ hoogle -i "nub"
    nub :: (Eq a) => [a] -> [a]
    base Data.List
    O(n^2). The nub function removes duplicate elements from
    a list. In particular, it keeps only the first occurrence of each
    element. (The name nub means `essence'.) It is a special case
    of nubBy, which allows the programmer to supply their own
    equality test.
    

    如果您想查看第一个结果以外的结果描述,请提供完全限定名称:

    $ hoogle -i "Control.Foldl.nub"
    nub :: Ord a => Fold a [a]
    foldl Control.Foldl
    O(n log n). Fold values into a list with duplicates removed,
    while preserving their first occurrences
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-24
      • 2015-02-04
      • 1970-01-01
      • 2013-11-30
      • 1970-01-01
      • 2015-01-17
      • 2010-09-30
      • 1970-01-01
      相关资源
      最近更新 更多