переменные кадра относятся к значениям кадра - PullRequest
0 голосов
/ 11 января 2020

Раздел 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.

Как фрейм-переменные и связанные значения связаны друг с другом?

1 Ответ

0 голосов
/ 11 января 2020

если x = 2 и y = 7 и z = 'foo, то если бы frame-переменные были списком (xzy), то frame-values ​​были бы списком (2 foo 7)

...