Scheme 框架变量与框架值相关

Scheme 框架变量与框架值相关,scheme,sicp,Scheme,Sicp,部分 哪一个可以制作框架 环境的每一帧都表示为一对列表:一个列表 在该框架中绑定的变量的 价值观 所以帧变量和帧值是存储的,但是以一种可区分的方式,它们不像hashmap结构中那样相互关联 框架变量和相关值如何相互连接?如果x=2,y=7,z='foo,那么如果框架变量是列表(x z y),那么框架值就是列表(2 foo 7) (define (make-frame variables values) (cons variables values));; (define (frame-var

部分

哪一个可以制作框架

环境的每一帧都表示为一对列表:一个列表 在该框架中绑定的变量的 价值观

所以帧变量和帧值是存储的,但是以一种可区分的方式,它们不像hashmap结构中那样相互关联


框架变量和相关值如何相互连接?

如果x=2,y=7,z='foo,那么如果框架变量是列表(x z y),那么框架值就是列表(2 foo 7)

(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))))