Информация об изменениях

Сообщение Re[4]: Что должен возвращать if? от 16.10.2014 18:37

Изменено 16.10.2014 18:38 Evgeny.Panasyuk

Здравствуйте, gbear, Вы писали:

G>Получим variant[string, variant[int, variant[decimal, option[T]]]]. Что несколько не удобно, имхо. Если идти по такому пути, то надо иметь возможноть получать какой-нибудь variant[string, int, decimal, option[T]]


Вижу несколько вариантов:

1. Автоматически делать flatten, но только при условие что это сломает обобщённый код.

2. Дать возможность делать явный flatten.

3. Сделать выражение не просто if else, а составное if else if else if else, то есть что-то типа специального keyword'а elseif (но думаю что его вводить не обязательно, а просто задавать составной синтаксис).
В этом случае те кому нужен плоский Variant — будут писать составное выражение, а если иерархический — то просто добавят скобки.
Re[4]: Что должен возвращать if?
Здравствуйте, gbear, Вы писали:

G>Получим variant[string, variant[int, variant[decimal, option[T]]]]. Что несколько не удобно, имхо. Если идти по такому пути, то надо иметь возможноть получать какой-нибудь variant[string, int, decimal, option[T]]


Вижу несколько вариантов:

1. Автоматически делать flatten, но только при условии что это сломает обобщённый код.

2. Дать возможность делать явный flatten.

3. Сделать выражение не просто if else, а составное if else if else if else, то есть что-то типа специального keyword'а elseif (но думаю что его вводить не обязательно, а просто задавать составной синтаксис).
В этом случае те кому нужен плоский Variant — будут писать составное выражение, а если иерархический — то просто добавят скобки.