Ну maybe не слишком удобная замена именно исключеням, в maybe информацию об ошибке не передашь. Все же тема с исключениями более широкая. Мое мнение - исключения нельзя использовать для failure path в бизнес-логике. Можно только для экстренных ситуаций.
Ну, maybe - это просто
try ... catch (...) ....
А Either это перехват конкретных исключений. Пока что не вижу разницы
Исключения - механизм языка. Монадические цепочки - это значения, ты можешь их переиспользовать, соединять с другими, применять генеричные монадические функции. Там их много, и они очень полезны, упрощают код. В итоге ты не просто пишешь логику, ты делаешь ее декларативной и более переиспользуемой
Исключения - механизм языка. Монадические цепочки - это значения, ты можешь их переиспользовать, соединять с другими, применять генеричные монадические функции. Там их много, и они очень полезны, упрощают код. В итоге ты не просто пишешь логику, ты делаешь ее декларативной и более переиспользуемой
Динамическое конструирование и комбинирование транзакций?
Для Maybe/optional - никак, ты просто знаешь, что цепочка зафейлилась. А для Either/expected - ты возвращаешь специфическую ошибку, по которой и видно, какая функция в середине цепочки зафейлилась
ФП для реал-тайм игрушек не очень использовать. Если бы ты про пошаговые спросил, там в принципе можно придумать хорошие примеры. Скажем, в шахматах можно цепочки ходов завернуть в монаду Maybe или Either. Сделал ход, оценил ситуацию. Норм? Делай следующий ход. Не норм? Возвращай ошибку.
Исключения - механизм языка. Монадические цепочки - это значения, ты можешь их переиспользовать, соединять с другими, применять генеричные монадические функции. Там их много, и они очень полезны, упрощают код. В итоге ты не просто пишешь логику, ты делаешь ее декларативной и более переиспользуемой
Но зачем? Есть где-нибудь статья/учебник, где вот берут императивный пример, переписывают монадически и получают ништяки
ФП для реал-тайм игрушек не очень использовать. Если бы ты про пошаговые спросил, там в принципе можно придумать хорошие примеры. Скажем, в шахматах можно цепочки ходов завернуть в монаду Maybe или Either. Сделал ход, оценил ситуацию. Норм? Делай следующий ход. Не норм? Возвращай ошибку.