Я скомпилировал вашу программу с ocamlc
, и все прошло нормально (с использованием OCaml 3.12.0).
Я думаю, вы вызываете старую версию компилятора, когда пытаетесь скомпилировать, возможно, однус того момента, когда Array.make
все еще называлось Array.create
.Возможно, когда вы установили новую версию, вы перезаписали некоторые файлы (например, верхний уровень), но не другие (например, компилятор).Чтобы проверить, сравните версии, заданные ocamlc -v
и ocaml
.
Что касается сообщения «Несвязанное значение», в OCaml функции являются значениями.Разработчики не делали различий между «несвязанным значением, которое не является функцией» и «несвязанным значением, которое является функцией», но это не является причиной проблемы.Причина вашей проблемы в том, что Array.make
вообще не связан.