Skip to content

4.11 add-binding-to-frame! #16

@wdanxna

Description

@wdanxna

您好
练习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))

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions