请参阅复杂OCaml代码中的推断类型

Mau*_*fer 9 ocaml types type-inference

我是一个OCaml新手与一些非常复杂的(至少对我来说)OCaml代码一起工作,我没有写.如果我能看到某些值的推断类型,那么理解它会有很多帮助,因为我可以通过将鼠标悬停在任何值上来对F#和Visual Studio进行操作,例如:

F#显示推断类型

(截图来自http://theburningmonk.com/2010/01/learning-f-part-1/)

我想我可以分解代码并将其提供给顶层来获取类型,但还有其他更简单的方法吗?

Vic*_*let 8

首先,您必须foo.ml使用-annot标志编译文件().这将生成注释文件(foo.annot),其中包含有关所有内部标识符的类型信息.您可以将其作为makefile或构建过程的一部分包含在内.

然后,您需要依靠IDE来显示该信息.我在Tuareg(emacs模式)中使用Ctrl+ C,Ctrl+ 执行此操作T,它突出显示当前表达式并显示其类型.

  • 您还可以查看https://github.com/avsm/ocaml-annot以获取简单的命令行工具. (2认同)
  • 真正的答案是生成.annot文件,编辑器只是使用它们 (2认同)

0xF*_*xFF 7

OcaIDE是Eclipse的O'Caml插件,在编辑代码时动态显示推断类型.

例:

在此输入图像描述