The IO
monad di Haskell sering dijelaskan sebagai monad negara di mana negara adalah dunia. Jadi nilai tipe IO a
monad dipandang sebagai sesuatu seperti worldState -> (a, worldState)
.
Beberapa waktu yang lalu saya membaca artikel (atau posting blog / milis) yang mengkritik pandangan ini dan memberikan beberapa alasan mengapa itu tidak benar. Tetapi saya tidak dapat mengingat baik artikel maupun alasannya. Adakah yang tahu?
Sunting: Artikel ini sepertinya hilang, jadi mari kita mulai mengumpulkan berbagai argumen di sini. Saya memulai hadiah untuk membuat hal-hal lebih menarik.
Sunting: Artikel yang saya cari adalah Menangani skuad canggung: input / output monadik, konkurensi, pengecualian, dan panggilan bahasa asing di Haskell oleh Simon Peyton Jones. (Terima kasih atas jawaban TacTics.)