Возвращаемые значения OCaml

В книге «Разработка приложений с помощью 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.

Спасибо за вашу помощь.

8
задан Sergi Mansilla 15 June 2011 в 06:40
поделиться