Нет, я не думаю, что вы можете оставить вещи неопределенными. Неинициализированные значения вызывают всевозможные проблемы на языках типа C, поэтому в OCaml этого избежать. (Хотя в стандартной библиотеке есть несколько функций, которые оставляют некоторые вещи неопределенными, например String.create
, я не думаю, что вы можете сделать это сами.)
Вам придется либо заполнить все поля самостоятельно (и использовать пустой список []
или что-то в этом роде для значений, которые вам не нужны) или использовать ранее существовавшее значение этого типа и использовать синтаксис обновления записи для создания новой записи с полями, которые вы заботитесь об изменении, а другой которые копируются из ранее существовавшей записи.
Чтобы развернуть это, рекомендуется, чтобы вы либо имели структуру по умолчанию (как предполагает неизвестность (yahoo)), либо используйте тип параметра для этого конкретного поля. – nlucaroni