您好
练习4.11 的add-binding-to-frame! 我觉得你实现错了
(define (add-binding-to-frame! var val frame) (cons (cons var val) frame))
这里不应该是简单的返回一个新的frame,而是要修改原来的frame
(define (add-binding-to-frame! var val frame)
(let ((old-car (car frame)))
(set-car! frame (cons var val))
(set-cdr! frame (cons old-car (cdr frame)))))
;;test
(let ((frame (make-frame '(a b c) '(1 2 3))))
(add-binding-to-frame! 'd 4 frame)
(display frame))
您好
练习4.11 的add-binding-to-frame! 我觉得你实现错了
(define (add-binding-to-frame! var val frame) (cons (cons var val) frame))这里不应该是简单的返回一个新的frame,而是要修改原来的frame