首页 文章

在Haskell中,如何获取数据结构的可用函数列表? [重复]

提问于
浏览
4

这个问题在这里已有答案:

我知道我来自Python的Haskell,我使用HXT来解析XML文件,并且我可以在结果数据结构上使用一些函数 NTree ,就像函数 getChildren 一样,我怎么会这样做从ghci那里得到一份清单?在Python中,我可以导入模块和类型模块 . 得到一个清单 .

2 回答

  • 3

    在Python中,您可以使用 dir 来了解对象或函数的方法和字段 . Haskell中没有类似的东西 . :info 在类型或构造函数上使用时偶尔会有用,但与Python的 dir 相比,它的输出是空闲的 .

    在Python中,您可以使用 dir 来了解模块定义的函数,类和值 . 在Haskell中,您可以在ghci中使用 :browse 来执行相同操作 .

    在Python中,您可以使用 help 来获取一些程序员编写的文本来描述函数或其他对象 . 在Haskell中,你可以浏览Hackage上的Haddocks来做同样的事情 . 假设你已经在本地安装了相应的文档,那么表面上可以使用a tool来表示ghci,但它没有得到很好的维护,并且已经多次破坏了我 .

  • 3

    https://www.haskell.org/hoogle/可以帮助一下 . 给它一个模块名称或所需的签名 .

    Haskell中的类与Python不同's. Python'的类实例是部分应用函数的集合(绑定到 self ) . Haskell类更像是来自Java甚至Go的接口:如果某些东西符合函数签名列表,它可以"belong to the class" .

    适用于模块中定义的数据的功能通常在该模块中描述 . 但是数据项也可以符合其他接口,即类型类(如 FoldableTraversableApplicative 等),并且为这些类型类定义的所有函数也适用 .

    更重要的是,您可以在自己的模块中定义类型类,并通过编写所需函数的实现来描述已经存在的类型以符合它 . 这使得发现“所有适用的功能”更加依赖于上下文 .

相关问题