インタラクティブなOCamlでロードされたモジュールのインタフェースを見ることはできますか?私はそのような可能性を探そうとした(失敗した)と、オンラインのドキュメント/ソースは私が探しているものではありません。OCaml - モジュールのインターフェイスを見る方法?
5
A
答えて
6
このための標準的なやり方は、モジュールのシノニムを定義することです。これは、トップレベルにインターフェイスを一覧表示するよう誘導します。 OCamlのトップレベルのバージョン4.04.0では
$ 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
、モジュールの同義語を定義するのトリックはもう機能しません:
# 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とocamlインタプリタが追加されました#show指示が瞬間からあります。あまりにも私は4.04バージョンを使用していますが、私は、それはまた、4.03のために働くことを知っている>と多分その前に:。
│ 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:それは、次の例のように、正確に何をしたいん。
関連する問題
- 1. OCamlはインターフェイス
- 2. OCamlモジュール名の衝突を修正する方法
- 3. OCamlはモジュール
- 4. OCaml - シグネチャ、モジュール、タイプ
- 5. OCamlのモジュールとパフォーマンス
- 6. OCaml:モジュールを設定する
- 7. Ocamlのマップでキーを見つける簡単な方法
- 8. OCamlプラグインの任意の型のインターフェイス
- 9. OCamlパッケージで提供されているインターフェイスの検索方法は?
- 10. OCAMLモジュールタイプとモジュールのコンパイル
- 11. OCamlはグラフの頂点モジュール
- 12. インターフェイスではなくコードでDNNモジュールをインストールする方法は?
- 13. モジュールを使用しているBST - OCaml
- 14. OCamlで行列モジュールを定義する
- 15. OCaml /理由設計モジュール
- 16. モジュール内のすべてのモジュールをocamlに含めます
- 17. OCamlの現在のモジュールへの参照
- 18. モジュール内での関数の宣言OCaml
- 19. OCamlでのモジュール動作の変更
- 20. OCamlのutop:外部モジュールのインポート
- 21. モジュールのためのインターフェイスを実装するためのpythonic方法
- 22. シングルOCamlのモジュールは、ここでインターフェース
- 23. ocamlモジュールと同じファイルのプログラム
- 24. ColdBoxモジュールのインターフェイスのサポート?
- 25. OCaml - file.mlをロードする方法
- 26. ocamlグラフィックスウィンドウをコンパイルする方法cygwin
- 27. typescriptモジュールがインターフェイスに準拠していることを確認する方法
- 28. のOCaml - ファイルやOCamlではファイルから内容を読み取る方法
- 29. OCaml型バインディングは再帰的なモジュールで
- 30. OCamlの外部と内部のインターフェイスと情報の隠蔽
ocamlに恥ずかしいアイデアは、非ハックな方法でそれを可能にしないためです。ありがとうございました! – mkf
この機能は、OCamlコンパイラではなく、OCaml用のIDEによって提供されるべきだと思います。 –
そうすることを騙す方法が見つからない限り、 – mkf