Я написал синтаксический анализатор, который считывает строковый ввод. Это работает. Я также написал оценщик, который выдает результат. Но есть одна маленькая деталь, которую мне сложно реализовать. Посмотрите на следующий пример:
+(sw+(2,2),sr)
Предполагается, что конструкция sw этого крошечного языка вычисляет "+ (2,2)" и где-то ее сохраняет. Конструкция sr будет читать эту область хранения. Все выражение over будет оцениваться как 8.
Я думаю об использовании дополнительного параметра для функции eval, которая сохраняет результат. Но я не вижу, чтобы это сработало. Обратите внимание: я новичок в haskell, так что будьте добры. О, это домашнее задание. Так что не давайте мне решения, дайте мне подсказку.