代码之家  ›  专栏  ›  技术社区  ›  justinhj

是否有办法在GHCI中查看模块中的函数列表?

  •  34
  • justinhj  · 技术社区  · 16 年前

    我发现在Python或CommonLisp中,可以方便地在运行时列出库的内容。Haskell是否有相同的东西,特别是从GHCI提示符中?

    2 回复  |  直到 12 年前
        1
  •  65
  •   sth    16 年前

    GHCi有一个 :browse 用于列出模块内容的命令:

    Prelude> :browse Data.List
    (\\) :: (Eq a) => [a] -> [a] -> [a]
    delete :: (Eq a) => a -> [a] -> [a]
    deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]
    deleteFirstsBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]
    elemIndex :: (Eq a) => a -> [a] -> Maybe Int
    ...
    Prelude> :help                    
    ...
       :browse[!] [[*]<mod>]       display the names defined by module <mod>
                                   (!: more details; *: all top-level names)
    ...
    
        2
  •  12
  •   Mark Rushakoff    16 年前

    具体取决于您打算提取的信息。。。如果您的GHCi版本支持制表符完成,则可以使用该制表符列出命名空间的所有可用函数:

    Prelude> :m +Data.List
    Prelude Data.List> Data.List.<PRESS TAB KEY HERE>
    Display all 109 possibilities? (y or n) <PRESS n>
    Prelude Data.List> Data.List.un<PRESS TAB KEY HERE>
    Data.List.unfoldr  Data.List.unlines  Data.List.unzip3   Data.List.unzip6   
    Data.List.union    Data.List.unwords  Data.List.unzip4   Data.List.unzip7   
    Data.List.unionBy  Data.List.unzip    Data.List.unzip5   
    
    推荐文章