Цитата Сообщение от Владимир Ситников Посмотреть сообщение
Давайте посмотрим на такой код на C:

Код:
int counter = 0;

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

А в хаскеле вы из монады IO повлиять на состояние монады State не можете никак =)