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

G>>Да я не про это. Кто будет "дергать за веревочку"?

EP>Программист вестимо, а кто ещё если это "явное" упрощение?
G>>И главное — как он будет определять нужно ли "дергать"?
EP>Самому или с помощью компилятора. Например сейчас же компилятор ругается на вывод Object'а?

Вот, при вычислении мы получили некий variant[int, void]. Вы, только честно, способны сказать _что_ мы получили? Ваше типо-maybe? Или, может быть, это "нормальный" variant?
Вы предлагаете интерпритировать _любой_ variant[T, void] как maybe чтоли?! А если T — внезапно — окажется void? if(x > 0) foo(x) — это тогда "go wrong" — без вариантов

А что делать в "обобщенном коде", когда любой variant[T, U], при таком подходе, способен внезапно стать таким типо-maybe?

Еще раз... maybe — вещь вполне конкретная. Обладает вполне определенной семантикой. variant — такой семантической нагрузки не несет. И "усилием воли" её на него "повесить" не выйдет.

G>>Есть foo(x) -> void и bar(x) -> variant[int, void].

G>>
G>>if(x > 0) bar(x) else foo(x)
G>>

G>>Нужно "дергать"?

EP>Если неявного упрощения нет — то да, можно.



Кхм... я дико извиняюсь. Но я таки спрашивал вас не за "можно", а за "нужно".

По остальному отпишусь отдельным постом

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