Re[3]: Что должен возвращать if?
От: gbear Россия  
Дата: 16.10.14 03:32
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Думаю если if без else это Maybe, то по идее if+else это Variant (в таком случае есть некоторая симметрия: Maybe<T> это грубо говоря Variant<T, void>).

EP>А сейчас видимо для if+else просто общий тип выводится?

Для того, чтобы вычисление if+else в Variant имело смысл, его синтаксис должен позволять избегать вложенности. Иначе на выходе гипотетического:

if(a(x)) 
  "a"
else
  if(b(x))
    1
  else
    if(c(x))
      0.1
    else
      Some(x)


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

---
С уважением, Константин Сиваков
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.