Guided Practice 7.3
Consider the computation of
(program-all-defined? (list (make-def 'f1 (list 'x) (make-appexp 'f2 (list (make-varexp 'x)))) (make-def 'f2 (list 'x 'y) (make-appexp 'f2 (list (make-varexp 'z) (make-varexp 'y)))) (make-def 'f3 (list 'x 'y 'z) (make-appexp 'f1 (list (make-appexp 'f2 (list (make-varexp 'z) (make-varexp 'y))) (make-varexp 'x))))))
Which of the following will appear as calls during this computation? Which of the following satisfy the invariant?
- (exp-all-defined? (make-varexp 'z) (list 'f1 'x))
- (exp-all-defined? (make-varexp 'z) (list 'f3 'x 'y 'z 'f2 'f1))
- (exp-all-defined? (make-varexp 'z) (list 'f2 'x 'y 'z 'f1))
- (exp-all-defined? (make-varexp 'z) (list 'f3 'x 'y 'f1 'z))
Last modified: Mon Oct 2 12:36:35 Eastern Daylight Time 2017