Используйте несколько модулей в OCaml Utop
Я недавно читаю проект OCaml и хочу поместить исходные файлы в utop, чтобы я мог провести некоторые эксперименты.
Предположим, у меня есть два файла amodule.ml и bmodule.ml.
bmodule.ml будет использовать функции, определенные в amodule.ml, например, bmodule использует Amodule.anyfunction(), где anyfunction () определена в amodule.ml.
Я хочу поставить их обоих в утопе:
#directory "/directory contain amodule.ml and bmodule.ml"
#use "amodule.ml"
#use "bmodule.ml"
И это не работает, потому что Amodule - это база имен модулей в файле amodule.ml, и я думаю, что utop не знает этих вещей.
Итак, как я могу поместить эти файлы в утоп, не меняя содержимого файла?
1 ответ
#use a.ml
выполняет каждый оператор в a.ml так же, как если бы вы ввели эти операторы непосредственно на верхнем уровне. Таким образом, вы не получите module A
определены, поэтому ваш другой файл не может иметь такие вещи, как A.foo
, Если ты хочешь module A
, вы должны сначала скомпилировать байт a.ml, а затем #load a.cmo
,