Под «средой» они, вероятно, означают эквивалент «сферы» на других языках. Рассмотрим следующий фрагмент 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 и k. Таким образом, здесь есть три переменные: внешний j и внутренний j и k.
Одним из способов реализации этого является определение области, которая должна быть списком «окружения». Когда вы вводите новый блок, вы помещаете в свой список еще одну «среду». Когда вы просматриваете переменные по имени, вы смотрите сначала в недавно добавленную «среду». Если он там не найден, вы перемещаетесь по списку сред к следующему и смотрите туда и т. Д.
Сама «среда» часто представляет собой список пар, соответствующих именам переменных со значениями. Похоже, вас просят передать такой список вашей функции, каждая пара дает символ для логической переменной и ее значения. Основываясь на том, какие переменные в настоящее время «находятся в области», вы извлекаете их значения из среды и используете их в выражениях, которые вы оцениваете (в соответствии с этой грамматикой выражения, которую вы дали).
В вашем случае это звучит так, будто вас не спрашивают, чтобы беспокоиться о том, какие среды находятся в сфере охвата. У вас только одна среда, т. Е. Один список пар.
Звучит как честная работа, удачи!
Одна ссылка, которая может помочь в:
http://michaux.ca/articles/scheme-from-scratch-bootstrap-v0_9-environments
Что вы хотите сказать? Кроме того, не следует ли это помечать «домашнее задание»? – cam
@ Кама, я думаю, что у нас нет метатег, нет? http://blog.stackoverflow.com/2010/08/the-death-of-meta-tags/ – dsolimano
Спасибо @dsolimano. Я пропустил информационный бюллетень. – cam