В книге «Разработка приложений с помощью OCaml» имеется следующее объяснение возвращаемых значений:
Поскольку значение, предшествующее точке с запятой, отбрасывается, Objective CAML выдает предупреждение, когда оно не относится к типу unit.
# print_int 1; 2 ; 3 ;;
Characters 14-15:
Warning: this expression should have type unit.
1- : int = 3
To avoid this message, you can use the
function ignore:
# print_int 1; ignore 2; 3 ;;
1- : int = 3`
Я не понимаю, почему было бы проблемой, если 2
имеет возвращаемое значение, отличное от unit
, потому что я намерен не возвращать 2
, а возвращать 3
. Насколько я понимаю, любая инструкция, предшествующая моей самой последней инструкции, не является возвращаемым значением функции, так почему предупреждение?
У меня было это предупреждение во всем коде, и мне стало ясно, что я не совсем понимаю, как возвращаемые значения действительно работают в OCaml.
Спасибо за вашу помощь.