Глубокое связывание связывает окружение во время передачи процедуры в качестве аргумента
Мелкое связывание связывает окружение во время, когда процедура фактически называется
Так что для динамического определения объема с глубоким связыванием, когда add передается в секунду
среда имеет вид x = 1, y = 3, а x - это глобальный x, поэтому он записывает 4 в глобальный x, который выбирается write_integer.
Неглубокая привязка просто перемещается вверх, пока не найдет ближайшую переменную, соответствующую имени, поэтому ответ будет 1.