Node:Об окружении,
Next:Локальные переменные,
Up:О замыканиях
[Показать/скрыть оригинал] [Показать/скрыть перевод] [Переключить перевод и оригинал]
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:
define expression
define expression.
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.
Можно создавать и другие окружения, не только окружения верхнего уровня, можно создавать привязки переменных, или связи имя-расположение в этих окружениях. Эта возможность ключевая в концепции "замыкания", это будет показано в следующем подразделе.
> > далее > >