Node:Об окружении, Next:, Up:О замыканиях

[Показать/скрыть оригинал] [Показать/скрыть перевод] [Переключить перевод и оригинал]


14.4.1 Names, Locations, Values and Environments

14.4.1 Имена, расположения, значения и окружения

We said earlier that a variable name in a Scheme program is associated with a location in which any kind of Scheme value may be stored. (Incidentally, the term "vcell" is often used in Lisp and Scheme circles as an alternative to "location".) Thus part of what we mean when we talk about "creating a variable" is in fact establishing an association between a name, or identifier, that is used by the Scheme program code, and the variable location to which that name refers. Although the value that is stored in that location may change, the location to which a given name refers is always the same.

Как было сказано ранее, имя переменной в программе на Scheme связано с местом, где возможно хранение любого значения, допустимого в Scheme. (термин "vcell" часто используется в кругах Lisp и Scheme как альтернатива слову "location" (расположение)). Соответственно, часть процесса, который называем "создании переменной" на самом деле - создание и установка связи между именем или идентификатором, который используется в программе Scheme и расположением, на которое ссылается имя. Несмотря на то, что переменная, сохраняемая в расположении может изменяться, расположение, на которое ссылается заданное имя, всегда одно и то же.

We can illustrate this by breaking down the operation of the define syntax into three parts: define

Мы можем пояснить это на примере подробного разбора работы define. Define:

A collection of associations between names and locations is called an environment. When you create a top level variable in a program using define, the name-location association for that variable is added to the "top level" environment. The "top level" environment also includes name-location associations for all the procedures that are supplied by standard Scheme.

Совокупность связей между именем и местоположением называется окружение (enviroment). Когда в программе создаётся переменная верхнего уровня с использованием define, связь имя-расположение для указанной переменной добавляется в окружение верхнего уровня. Окружение верхнего уровня также включает в себя связи имя-расположение для всех процедур, стандартно поддерживаемых Scheme.

It is also possible to create environments other than the top level one, and to create variable bindings, or name-location associations, in those environments. This ability is a key ingredient in the concept of closure; the next subsection shows how it is done.

Можно создавать и другие окружения, не только окружения верхнего уровня, можно создавать привязки переменных, или связи имя-расположение в этих окружениях. Эта возможность ключевая в концепции "замыкания", это будет показано в следующем подразделе.


> > далее > >