【问题标题】:How to print the constructors of a type in GHCi?如何在 GHCi 中打印类型的构造函数?
【发布时间】:2020-04-22 21:47:43
【问题描述】:

使用:t 我可以打印表达式的类型。但是我如何查看该类型的构造函数呢?在 Emacs 的 Haskell 模式下还有一个快捷方式吗?

这似乎是一个基本的东西,但我找不到它。也许我只是在搜索错误的术语...

一般而言,无需查看文档即可查看打印类型定义的最简单方法是什么。

【问题讨论】:

    标签: haskell ghci haskell-mode


    【解决方案1】:

    :info,或者只是:i,就是你想要的:

    >>> :i Either
    data Either a b = Left a | Right b  -- Defined in ‘Data.Either’
    ... plus all of Either's instances
    

    来自GHCi documentation

    :信息 名称 ...

    显示有关给定名称的信息。例如,如果 name 是 一个类,然后将打印类方法及其类型;如果 name 是一个类型构造函数,那么它的定义就会被打印出来;如果 name 是一个函数,那么它的类型就会被打印出来。如果 name 已经 从源文件加载,那么 GHCi 也会显示 它在源代码中的定义。

    Emacs 中的 Haskell 模式有 haskell-process-do-info (source),其中一个 Haskell on Emacs Tutorial 建议设置键绑定 C-c C-n C-i

    (defun haskell-process-do-info (&optional prompt-value) 
      "Print info on the identifier at point.
    If PROMPT-VALUE is non-nil, request identifier via mini-buffer."
    ...
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-21
      • 2018-11-17
      • 1970-01-01
      • 2017-01-29
      • 2021-08-30
      • 2019-07-05
      相关资源
      最近更新 更多