是否可以在交互式OCaml中看到加载模块的接口?我有(尝试失败)尝试搜索这种可能性,并且在线文档/资源不是我正在寻找的。OCaml - 如何查看模块的接口?
5
A
回答
6
这个标准的技巧是为模块定义一个同义词,它引发了顶层列表界面。
$ ocaml
OCaml version 4.00.1
# #load "str.cma";;
# module S = Str;;
module S :
sig
type regexp = Str.regexp
val regexp : string -> regexp
val regexp_case_fold : string -> regexp
val quote : string -> string
val regexp_string : string -> regexp
val regexp_string_case_fold : string -> regexp
val string_match : regexp -> string -> int -> bool
. . .
val first_chars : string -> int -> string
val last_chars : string -> int -> string
end
1
在OCaml的顶层版本4.04.0,定义模块的同义词的伎俩在没有更多:
# module L = List;;
module L = List
#
,但你可以使用include
指令:
# module L = struct include List end;;
module L :
sig
val length : 'a list -> int
val cons : 'a -> 'a list -> 'a list
val hd : 'a list -> 'a
val tl : 'a list -> 'a list
val nth : 'a list -> int -> 'a
val rev : '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
#
+1
你可以直接使用#show指令:#show List ;; – ghilesZ
3
两个utop and ocaml interpreters added the #show指令自一刻起。它不正是你想要的,如下面的例子:
│ Welcome to utop version 1.19.3 (using OCaml version 4.04.0) │
└──────────────────────────────────────────────────────────────┘
Type #utop_help for help about using utop.
─(15:12:33)─< command 0 >──────────────────────────────────────{ counter: 0 }─
utop # #show List;;
module List :
sig
val length : 'a list -> int
val cons : 'a -> 'a list -> 'a list
val hd : 'a list -> 'a
...
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
PS:我使用4.04版本,但我知道,这也适用于4.03>和之前也许太。
相关问题
- 1. 如何查看laravel模块?
- 2. Ocaml stdin接口
- 3. ocaml中的链接模块出错
- 4. ocaml嵌套模块:执行ml与接口不匹配cmi
- 5. 如何查看ocx文件的接口?
- 6. 如何在监视窗口中查看模块加载地址?
- 7. 如何在OCaml中定义两个相互连接的模块?
- 8. 如何导入一个模块一个模块(ocaml的)
- 9. OCaml:设置模块
- 10. OCaml映射模块
- 11. 如何查看GAE下的日志模块输出模块?
- 12. 如何检查ocaml顶层的模块/签名?
- 13. 如何使模块符合OCaml签名
- 14. OCaml:如何在Windows中使用模块
- 15. Ocaml:我如何安装Mpqf模块?
- 16. 接口与OCaml中
- 17. 如何查找接口,即OCaml包提供的功能集?
- 18. 关于查看模型和接口
- 19. 如何查看apache模块版本?
- 20. OCaml模拟模块生成
- 21. 如何与iPhone API接口OCaml?
- 22. OCaml中的模块和类
- 23. OCaml中的个人模块
- 24. OCaml的模块和性能
- 25. 如何链接两个自定义OCaml模块与`corebuild`
- 26. 如何链接Cygwin中的Thread模块?
- 27. 模块和接口
- 28. GLSL,接口模块
- 29. OCAML模块类型和模块编译
- 30. 如何在VS 2013中查看模块窗口和调用堆栈窗口?
真棒的想法,在ocaml的羞辱,因为它不可能以非hacky的方式。谢谢! – mkf
我认为这个特性应该由OCaml的IDE提供,而不是由OCaml编译器提供。所以没有耻辱OCaml :-) –
我的意思是交互式控制台为OCaml :)这似乎是你所说的IDE :) – mkf