Здравствуйте, zverjuga, Вы писали:
Z>Здравствуйте, varenikAA, Вы писали:
AA>>Вообще, мне кажется вы не правильно используете описание типа, AA>>Лучше переписать так:
Z>да, я думал об этом. но почему я выбрал именно такой подход? прежде всего из предположения, что тип Point будет расширяться, я туда буду добавлять новые сущности по мере разработки. по сути — это атрибуты нода и каждый нод содержит список таких атрибутов. сегодня атрибуты одни, завтра могут быть другими, поэтому и я выбрать такое объединение. если делать как в вашем варианте, то конструкция получится слишком громоздкой по мере увеличения данных/удаления/изменения таких атрибутов.
Тут дело не в громоздкости, а в том что вы неверно понимаете что есть DU, ведь координаты у вас связаны с описанием?
А описание без координат вообще лишено смысла?
То что дискриминаторы идут друг под другом не значит, что они наследуют вышестоящих, они наследуют только базовый Point.
Надеюсь вы это понимаете, все дискриминаторы типа по сути это разные сущности или структуры данных.
DU удобно описывать различные состояния объекта.
До F# на чем писали?