Вы не можете.Это выбор дизайна.Многие языки позволяют любому значению быть нулевым.Проблема с этим подходом состоит в том, что значения являются нулевыми, когда программист не ожидает этого, или код должен быть завален проверками каждого входного значения на нулевые значения.
OCaml использует подход, который, еслизначение может быть нулевым, тогда оно должно быть явно помечено как таковое.Это делается с параметром типа:
match value with
| None -> failwith "Empty"
| Some value -> (* do something *)
Однако, если вы подставите это непосредственно в вашу программу, если не удастся скомпилировать, потому что OCaml обнаружит, что это «значение» не может быть на самом деле нулевым.Все, что создается, необходимо обновить, чтобы указать, когда возвращается «нулевое» значение (Нет):
let safe_divide numerator denominator =
if denominator <> 0. then
Some (numerator /. denominator)
else
None (* division by zero *)