Многие компьютерные энтузиасты в 80-х слышали о серии интерактивных фантастических игр Infocom, особенно о таких, как «Zork», «Автостопом по галактике», «Planetfall», «A Mind Forever Voyaging», и т. д..
Эти игры были реализованы поверх виртуальной машины "Z-Machine". Машина реализована в виде блока оперативной памяти, стека и виртуального процессора. Процесс выполняет инструкции, которые могут динамически читать и записывать в ОЗУ.
Мой вопрос заключается в следующем: оперативная память виртуальных машин является динамической. Каков эффективный и достаточно идиоматический способ представления этой оперативной памяти (и более целостной структуры виртуальной машины), чтобы я мог реализовать программное обеспечение для запуска этих игр? Например, должен ли я использовать Data.Array для представления ОЗУ и монады состояния?