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