В книге «Разработка приложений с помощью OCaml» есть следующее объяснение возвращаемых значений:
Поскольку значение, предшествующее точке с запятой, отбрасывается, Objective CAML выдает предупреждение, если оно не относится к типу unit.
# print_int 1; 2; 3 ;; Персонажи 14-15: Предупреждение: это выражение должно иметь тип unit. 1-: int = 3 Чтобы избежать этого сообщения, вы можете использовать функция игнорировать: # print_int 1; игнорировать 2; 3 ;; 1-: int = 3`
Я не понимаю, почему может возникнуть проблема, если 2
имеет возвращаемое значение, отличное от unit
, потому что я не намерен возвращать 2
, но чтобы вернуть 3
. Насколько я понимаю, любая инструкция, предшествующая моей последней инструкции, не является возвращаемым значением функции, так почему это предупреждение?
Это предупреждение появляется во всем моем коде, и мне становится ясно, что я не совсем понимаю, как на самом деле работают возвращаемые значения в OCaml.
Спасибо за вашу помощь.