Под «средой» они, вероятно, подразумевают эквивалент «контекста» в других языках.Рассмотрим следующий фрагмент C:
if (7 < 100)
{
int j = 2;
if (j < 4)
{
int k = 7, j = 14;
printf("k = %d, j = %d\n", k, j);
}
}
Обратите внимание, что во внешней области видимости (отмеченной внешним набором фигурных скобок) единственной переменной является j.Во внутренней области видимости есть новые j и a k.Итак, здесь есть три переменные: внешняя j и внутренняя j и k.
Одним из способов реализации этого является определение области видимости в виде списка «сред».Когда вы вводите новый блок, вы добавляете в список другое «окружение».При поиске переменных по имени вы сначала смотрите в самой последней добавленной «среде».Если его там нет, вы перемещаетесь по списку сред к следующему и смотрите там и так далее.
Сама «среда» часто представляет собой просто список пар, сопоставляющий имена переменных со значениями.Похоже, вас просят передать такой список в вашу функцию, каждая пара дает символ для логической переменной и ее значение.Исходя из того, какие переменные в настоящее время находятся в области видимости, вы извлекаете их значения из среды и используете их в выражениях, которые вы вычисляете (в соответствии с заданной вами грамматикой выражения).
В вашем случаеЗвучит так, будто вас не просят беспокоиться о том, какие среды находятся в сфере применения.У вас есть только одно окружение, то есть один список пар.
Звучит как немало работы, удачи!
Вот одна справка, которая может помочь:
http://michaux.ca/articles/scheme-from-scratch-bootstrap-v0_9-environments