Здравствуйте, EvilChild, Вы писали:
VD>>2. Ввести в систему типов аналог option[T] (нулабл-типы из дотнета не подходят, так как они применимы исключительно для вэйлью-типов).
EC>Они не решают эту проблему и для value types — меня компилятор не обязывает проверять есть ли значение в обёртке.
EC>Это подходит только для систем типов с алгебраическими типами данных.
Это не так. Решение найти не сложно. Конечно прийдется поменять язык, но это мелочи по сравнению с тем, что прийдется серьезно менять рантайм.
Да и нужны тут не алгеброические типы, а аналог паттерн-матчинга.
В Обероне есть понятие защиты (guard) которое является облегченным аналогом паттерн-матчинга и как раз решает похожие проблемы (безопасного повышающего приведения типов). Можно содрать это решение.
В прочем, введение алгеброических типов было бы действительно отличным решением. Но это, похоже, для МС просто слабо. Для Сана — тоже.
... << RSDN@Home 1.2.0 alpha rev. 637>>