【发布时间】:2020-04-22 21:47:43
【问题描述】:
使用:t 我可以打印表达式的类型。但是我如何查看该类型的构造函数呢?在 Emacs 的 Haskell 模式下还有一个快捷方式吗?
这似乎是一个基本的东西,但我找不到它。也许我只是在搜索错误的术语...
一般而言,无需查看文档即可查看打印类型定义的最简单方法是什么。
【问题讨论】:
标签: haskell ghci haskell-mode
使用:t 我可以打印表达式的类型。但是我如何查看该类型的构造函数呢?在 Emacs 的 Haskell 模式下还有一个快捷方式吗?
这似乎是一个基本的东西,但我找不到它。也许我只是在搜索错误的术语...
一般而言,无需查看文档即可查看打印类型定义的最简单方法是什么。
【问题讨论】:
标签: haskell ghci haskell-mode
:info,或者只是:i,就是你想要的:
>>> :i Either
data Either a b = Left a | Right b -- Defined in ‘Data.Either’
... plus all of Either's instances
:信息 名称 ...
显示有关给定名称的信息。例如,如果 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."
...
)
【讨论】: