От: | Mamut | http://dmitriid.com | |
Дата: | 04.02.15 21:44 | ||
Оценка: |
A>read_order_from_db :: OrderId -> Either NewOrder ProcessedOrder
A>
Только вот незадача-то. Объект у нас одного типа — заказ.
И дальше над ним может идти очень длинная последовательность действий. Где в одном действии ему надо быть уже отосланным, в другом — неотосланным, в пятом — отосланным, но неоплаченным, в десятом — просто не иметь статуса "fraud". Как предлагаешь поступать? Писать стопятьсот типов на каждый чих и комбинацию, а потом стопятьсот if'ов, инициализаторов и кастований из одного в другое?