私は Ocaml プログラミングの完全な初心者で、モジュールを自分のプログラムにリンクするのに問題があります。実際、私はいくつかの正規表現チェックを行っており、基本的にStr モジュールを使用して区切り文字列に基づいて文字列をトークン化する関数を作成しました。したがって、ライブラリで定義されている関数を次のように使用します。
Str.regexp_string /*and so on*/
ただし、ml ファイルをコンパイルしようとすると、未定義のグローバルStrがあることを示すエラーが表示されます。特定のモジュールを明示的にインクルードしなくても、Str の場合と同じように、List.length などを入力してList関数を使用します。私は試した
open Str;;
include Str;; /*None of these work and I still get the same error*/
ただし、トップレベルで使用する場合
load "str.cma" /*Then the program works without problems*/
モジュールをmlファイルに含めたいのは、最終的な実行可能ファイル(トップレベルでは実行されない)を取得するために最後に3つのcmoをリンクする必要があるためです。これが本当に基本的な質問であることは知っていますが、解決に苦労しています。前もって感謝します。