LINUX.ORG.RU

История изменений

Исправление hateyoufeel, (текущая версия) :

Вопрос был, зачем вообще нужен IO, если всё можно сделать на Polysemy.

Потому что Polysemy реализован в терминах IO, а не наоборот. Твоя проблема в том, что ты считаешь, что IO Int обязательно вернёт Int. Но оттуда так же может вылезти IOException, и с этим тоже надо что-то делать.

Если ты дальше спросишь, почему системы эффектов нет прямо в GHC, то потому что 25 лет назад до неё не додумались. Это сравнительно новая штука. Из коробки она есть в PureScript, например. Ну и это сравнительно небыстрая штука всё таки. Код тупо на IO быстрее кода на эффектах примерно в два-три раза в бенчмарках. В реальности всё не так страшно, но тем не менее.

Исправление hateyoufeel, :

Вопрос был, зачем вообще нужен IO, если всё можно сделать на Polysemy.

Потому что Polysemy реализован в терминах IO, а не наоборот. Твоя проблема в том, что ты считаешь, что IO Int обязательно вернёт Int. Но оттуда так же может вылезти IOException, и с этим тоже надо что-то делать.

Если ты дальше спросишь, почему системы эффектов нет прямо в GHC, то потому что 25 лет назад до неё не додумались. Это сравнительно новая штука. Из коробки она есть в PureScript, например.

Исходная версия hateyoufeel, :

Вопрос был, зачем вообще нужен IO, если всё можно сделать на Polysemy.

Потому что Polysemy реализован в терминах IO, а не наоборот. Твоя проблема в том, что ты считаешь, что IO Int обязательно вернёт Int. Но оттуда так же может вылезти IOException, и с этим тоже надо что-то делать.