Сообщение от Владимир Ситников Давайте посмотрим на такой код на C: Код: int counter = 0; int abcd() { counter = counter + 1; return counter; } Внимание, вопрос: является ли функция abcd чистой? Очевидно, что IO эта функция не выполняет. Нет, поскольку эта функция может читать ввод посредством некой другой функции, которая будет записывать его в переменную counter. А в хаскеле вы из монады IO повлиять на состояние монады State не можете никак =)
int counter = 0; int abcd() { counter = counter + 1; return counter; }
Правила форума