4 (define (analyze-assignment expr)
5 (let ([var (assignment-var expr)]
6 [vproc (analyze (assignment-value expr))])
7 (lambda (env succeed fail)
10 (let ([old-val (lookup-variable-value var env)])
11 (set-variable-value! var val)
14 (set-variable-value! var old-val env)
20 (define (analyze-permanent-assignment expr)
21 (let ([var (perm-assignment-var expr)]
22 [vproc (analyze (perm-assignment-value expr))])
23 (lambda (env succeed fail)
26 (set-variable-value! var val)