Монада IO в Haskell и использование памяти

Вероятно, я не очень хорошо понимаю монаду IO.

Если я напишу приложение, которое, как ожидается, будет работать в течение многих месяцев, при этом записывая его прогресс, будет ли монада IO хранить всю информацию журнала в ОЗУ до конца?

Из блога на IO Inside, Haskell моделирует мир как

main :: RealWorld -> ((), RealWorld)

, так что IO не происходит во время выполнения части кода Haskell, а только когда приложение возвращается из основной.

Вероятно, я совершенно неправильно истолковал это. Может ли кто-нибудь объяснить , когдаHaskell на самом деле выполняет ввод-вывод?

7
задан Ralph 4 June 2012 в 11:45
поделиться