В языке Scheme значения (такие как числа, строки, векторы, функции) неявно характеризуются местом, где они расположены - местоположением (location),- или последовательностью таких мест. Например, строка характеризуется последовательностью местоположений каждого символа этой строки. Для простоты восприятия под местоположением можно понимать некоторый адрес оперативной памяти, однако заметим, что в стандарте языка понятие местоположения не уточняется. Язык Scheme предоставляет средства доступа к значениям и их модификации по их местоположению. Например, стандартная функция string-set! позволяет сохранить новое значение по определенному местоположению в строке (местоположение задается его порядковым номером). Переменной в языке Scheme называется идентификатор, именующий некоторое местоположение. Говорят, что переменная связана с местоположением. Таким образом, переменная языка Scheme связана с местоположением, а не с тем значением, которые находится по этому местоположению. Переменная может быть использована для изменения значения, находящегося по соответствующему местоположению, при помощи оператора присваивания set!. Фактически, введение понятия местоположения и соответствующих операций изменения значений по местоположению, выводит Scheme за рамки чисто функционального языка и допускает императивный стиль программирования. Тем не менее, если придерживаться чисто функционального стиля программирования, можно забыть про понятие местоположения и считать, что переменная связана непосредственно со значением.
Множество связываний, которые видны в некоторой точке программы, называется активным окружением (environment in effect).