IO
Монада в Haskell часто пояснюється як державної монади , де держава є світ. Таким чином, значення IO a
монади типу розглядається як щось подібне worldState -> (a, worldState)
.
Деякий час тому я прочитав статтю (або повідомлення в блозі / списку розсилки), в якому критикував цю точку зору і наводив кілька причин, чому це не правильно. Але я не пам'ятаю ні статті, ні причин. Хтось знає?
Редагувати: Стаття здається втраченою, тому почнемо тут збирати різні аргументи. Я починаю щедро робити цікавіші речі.
Редагувати: Стаття, яку я шукав, - це вирішення незручного загону: монадійний введення / вихід, одночасність, винятки та дзвінки на іноземній мові в Haskell Саймона Пейтона Джонса. (Завдяки відповіді TacTics.)