ocaml 中的预加载模块及其内容
pre-loaded module in ocaml, and their contents
两个问题:
- 如何找到我的 ocaml 会话中预加载的模块?
- 给定一个模块,如何列出其内容?
在 SML 中,标准 "trick" 是定义一个虚拟模块并在其中打开一个模块,我想检查其中的内容。然后,虚拟模块的签名将在 SML 中列出模块的内容。这在 ocaml 中不起作用。
发现:要查看预加载的包,使用#use "topfind";;
使用topfind包,#list;;
会列出预加载的包已加载包!
我不知道如何列出当前加载的模块。
显示模块的内容:
# #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 中给出。
两个问题:
- 如何找到我的 ocaml 会话中预加载的模块?
- 给定一个模块,如何列出其内容?
在 SML 中,标准 "trick" 是定义一个虚拟模块并在其中打开一个模块,我想检查其中的内容。然后,虚拟模块的签名将在 SML 中列出模块的内容。这在 ocaml 中不起作用。
发现:要查看预加载的包,使用#use "topfind";;
使用topfind包,#list;;
会列出预加载的包已加载包!
我不知道如何列出当前加载的模块。
显示模块的内容:
# #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 中给出。