Раздел 4.1.3 Структуры данных оценщика SICP
, которые иллюстрируют make-frame
Каждый кадр среды представлен в виде пары списков : список переменных, связанных в этом кадре, и список связанных значений.
(define (make-frame variables values)
(cons variables values));;
(define (frame-variables frame) (car frame))
(define (frame-values frame) (cdr frame))
(define (add-binding-to-frame! var val frame)
(set-car! frame (cons var (car frame)))
(set-cdr! frame (cons val (cdr frame))))
Таким образом, переменные кадра и значения кадра сохраняются, но отличительным образом, они не являются связаны друг с другом, как в структуре hashmap.
Как фрейм-переменные и связанные значения связаны друг с другом?