是否可以在交互式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