【问题标题】:pre-loaded module in ocaml, and their contentsocaml 中的预加载模块及其内容
【发布时间】:2015-08-10 18:49:46
【问题描述】:

两个问题:

  1. 如何找到我的 ocaml 会话中预加载的模块?
  2. 给定一个模块,如何列出其内容?

在 SML 中,一个标准的“技巧”是定义一个虚拟模块并在其中打开一个我想要检查其内容的模块。然后,虚拟模块的签名将在 SML 中列出模块的内容。这在 ocaml 中不起作用。

发现这个:要查看预加载的包,使用#use "topfind";;使用topfind包,#list;;会列出预加载的包!

【问题讨论】:

  • 对于两个,这是一个工具问题。您可以在 vim/emacs 中使用 merlin,也可以使用 ocp-browser。两者都可以在 ocaml 包管理器 opam 上使用。
  • #list 不会显示所有预加载的模块,但会显示可以加载

标签: module ocaml


【解决方案1】:

我不知道如何列出当前加载的模块。

显示模块的内容:

# #show_module Pervasives;;
module Pervasives :
  sig
    external raise : exn -> 'a = "%raise"
    external raise_notrace : exn -> 'a = "%raise_notrace"
    val invalid_arg : string -> 'a
    . . .
    val unsafe_really_input : in_channel -> bytes -> int -> int -> unit
    val do_at_exit : unit -> unit
  end

最初的顶级指令集在 OCaml 手册的Section 9.2 中给出。

【讨论】:

  • 这适用于 4.02... 我需要升级。 :-) 谢谢!
  • 不要忘记前导#。它是指令的一部分。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-20
  • 2018-02-12
  • 1970-01-01
  • 1970-01-01
  • 2010-12-21
相关资源
最近更新 更多