Practice 4.13
只unbound当前frame中的绑定比较合适
(define (make-unbound! var env)
(let ((frame (first-frame env)))
(delete var frame)))
(define (delete var frame)
(let ((new-vars '())
(new-vals '())
(vars (car frame))
(vals (cdr frame)))
(define (temp vars vals)
(if (null? vars)
(begin (set-car! frame new-vars)
(set-cdr! frame new-vals)
'ok)
(if (eq? var (car vars))
(temp (cdr vars) (cdr vals))
(begin (set! new-vars (append new-vars (list (car vars))))
(set! new-vals (append new-vals (list (car vals))))
(temp (cdr vars) (cdr vals))
'ok))))
(temp vars vals)))