インタラクティブな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 - file.mlをロードする方法
- 10. のOCaml - ファイルやOCamlではファイルから内容を読み取る方法
- 11. JBoss AS 7:除外するモジュールを見つける方法は?
- 12. Ocamlの2つのインタラクティブなモジュールを設計する
- 13. モジュールを使用するOcamlを設定する
- 14. OCaml utopでいくつかのモジュールを使用する
- 15. numpyでコンパイルされた拡張モジュールを見つける方法
- 16. ウェブサイトのインターフェイスをテストする方法(ユニット)
- 17. ocamlで新しいモジュールをインポートして使用するには?
- 18. いくつかのモジュールの共通インターフェイス
- 19. ocamlのモジュラプログラミング
- 20. java.net.NetworkInterface.getNetworkInterfaces() "実際の"インターフェイスを見つける
- 21. OCamlファイルに書き込む方法は?
- 22. OCamlで2つのリストの製品を取る方法は?
- 23. TypeScriptインターフェイスを構成する方法
- 24. ISynchronizeInvokeインターフェイスを使用する方法?
- 25. ウィンドウにインターフェイスを追加する方法
- 26. インターフェイス型メンバーをシリアル化する方法
- 27. GHCIのモジュール内の関数リストを見る方法はありますか?
- 28. ocamlの再帰的な方法でファイルをロードする
- 29. OCamlでデバッグ用のプログラムをトレースする方法は?
- 30. のOCaml:高いkinded多型(?モジュールの上に抽象化)
ocamlに恥ずかしいアイデアは、非ハックな方法でそれを可能にしないためです。ありがとうございました! – mkf
この機能は、OCamlコンパイラではなく、OCaml用のIDEによって提供されるべきだと思います。 –
そうすることを騙す方法が見つからない限り、 – mkf