Распечатка полученной вами ошибки была бы полезной.Для справки:
File "test2.ml", line 3, characters 0-12:
Error: Syntax error
Причина этого немного сложна.Обычный синтаксис для файла - это последовательность операторов верхнего уровня, таких как определения типов, let
(без in
), определение модуля / открытие / включение и т. Д.
Такие выражения, как print_string "Hello"
, никогда не обрабатываются как операторы верхнего уровня, если их значение не является полностью однозначным, что в 99% случаев подразумевает их отделение от предыдущего и следующего операторов с помощью ;;
Итак, вы можете написать следующее:
open Test1 ;;
print_string " Hello "
И это сработает.Тем не менее, в большинстве случаев желательно поддерживать чистоту файла, превратив выражение в верхний уровень let
:
open Test1
let () = print_string " Hello "
Это также имеет преимущество, заключающееся в том, что функция возвращает unit
, что всегда приятно иметь.