Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ocaml顶层检查模块/签名?_Ocaml - Fatal编程技术网

如何在ocaml顶层检查模块/签名?

如何在ocaml顶层检查模块/签名?,ocaml,Ocaml,请:我想检查一个模块的签名;是否有一个函数可以执行此操作?仅键入模块名称不起作用: # List ;; Error: Unbound constructor List 事实上,我想对我在交互顶层定义的模块执行此操作 抱歉,如果答案是显而易见的-很难搜索到这个!谢谢。这方面的标准技巧是创建一个新模块同义词: # module Mylist = List;; module Mylist : sig val length : 'a list -> int val hd :

请:我想检查一个模块的签名;是否有一个函数可以执行此操作?仅键入模块名称不起作用:

# List ;;
Error: Unbound constructor List
事实上,我想对我在交互顶层定义的模块执行此操作


抱歉,如果答案是显而易见的-很难搜索到这个!谢谢。

这方面的标准技巧是创建一个新模块同义词:

# module Mylist = List;;
module Mylist :
  sig
    val length : 'a list -> int
    val hd : 'a list -> 'a
    val tl : 'a list -> 'a list
    . . .
    val sort : ('a -> 'a -> int) -> 'a list -> 'a list
    val stable_sort : ('a -> 'a -> int) -> 'a list -> 'a list
    val fast_sort : ('a -> 'a -> int) -> 'a list -> 'a list
    val merge : ('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
  end
# 
更新

由于OCAML4.02,这个技巧不再有效。相反,有一个顶级指令用于:

# #show_module List;;
module List :
  sig
    val length : 'a list -> int
    val hd : 'a list -> 'a
    val tl : 'a list -> 'a list
    . . .
    val sort : ('a -> 'a -> int) -> 'a list -> 'a list
    val stable_sort : ('a -> 'a -> int) -> 'a list -> 'a list
    val fast_sort : ('a -> 'a -> int) -> 'a list -> 'a list
    val sort_uniq : ('a -> 'a -> int) -> 'a list -> 'a list
    val merge : ('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
  end

在OCaml版本>=4.02中,您现在也可以在交互式解释器中执行此操作:

# #show_module List;;
module List :
  sig
    val length : 'a list -> int
    ...
  end

或者只使用
#show List

这曾经是获取此信息的唯一方法。自OCAML4.02.0以来,情况有所不同(而且更好)。