0

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

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

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

4

1 回答 1

4

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

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

来自GHCi 文档

:信息名称...

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

Emacs 中的 Haskell 模式有haskell-process-do-info( source ), Emacs 教程中的一个Haskell建议为此设置 keybinding 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."
...
)
于 2020-04-22T23:13:14.487 回答