Используйте несколько модулей в 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,

Другие вопросы по тегам