繁体   English   中英

ocaml:utop,有没有办法列出模块的所有功能?

[英]ocaml : utop, is there a way to list all functions of a module?

在utop中,当打开库(通过~requires ......)或打开模块时(通过打开Module_name),有没有办法获取库或模块的内容? utop通过完成选项卡提供此功能,但我希望立即看到所有功能。

不一定在utop中,您可以使用以下内容:

# module type S = module type of Module_of_your_interest;;
module type S =
  sig
    ...
    ...
  end

警告:某些模块有很大的签名。

utop您可以使用#show命令。 例如

utop # #show Stack;;
module Stack :
  sig
    type 'a t
    exception Empty
    val create : unit -> 'a t
    val push : 'a -> 'a t -> unit
    val pop : 'a t -> 'a
    val top : 'a t -> 'a
    val clear : 'a t -> unit
    val copy : 'a t -> 'a t
    val is_empty : 'a t -> bool
    val length : 'a t -> int
    val iter : ('a -> unit) -> 'a t -> unit
  end

如果您对库中可用的函数名感兴趣,可以编写:

#module S = Library_name;;

例如:

#module M = String;;

输出将是:

模块M:sig外部长度:string - > int =“%string_length”external get:string - > int - > char =“%string_safe_get”external set:string - > int - > char - > unit =“%string_safe_set”external create:int - > string =“caml_create_string”val make:int - > char - > string val copy:string - > string val sub:string - > int - > int - > string val fill:string - > int - > int - > char - > unit val blit:string - > int - > string - > int - > int - > unit val concat:string - > string list - > string val iter:(char - > unit) - > string - > unit val iteri:(int - > char - > unit) - > string - > unit val map:(char - > char) - > string - > string val trim:string - > string val escaped:string - > string val index :string - > char - > int val rindex:string - > char - > int val index_from:string - > int - > char - > int val rindex_from:string - > int - > char - > int val contains:string - > char - > bool val contains_from:string - > int - > char - > bool val rcontains_from:string - > int - > char - > bool va l uppercase:string - > string val lowercase:string - > string val capitalize:string - > string val uncapitalize:string - > string type t = string val compare:t - > t - > int external unsafe_get:string - > int - > char =“%string_unsafe_get”external unsafe_set:string - > int - > char - > unit =“%string_unsafe_set”external unsafe_blit:string - > int - > string - > int - > int - > unit =“caml_blit_string”“noalloc “external unsafe_fill:string - > int - > int - > char - > unit =”caml_fill_string“”noalloc“end

之后,您甚至可以使用M作为String的别名。 例如:

# M.concat " " ["one"; "two"; "three"];;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM