6.001 Section #7 1 October 1997 Albert R.Meyer LET, LET*, and LETREC scoping Example (define a 0) (define b 1) (let ((a (lambda (n) (+ n (if (procedure? b) 2 (+ a 3))))) (b (lambda (n) (* n (if (procedure? a) 4 (+ b 5)))))) (list (a 6) (b 7))) (let* ((a (lambda (n) (+ n (if (procedure? b) 2 (+ a 3))))) (b (lambda (n) (* n (if (procedure? a) 4 (+ b 5)))))) (list (a 6) (b 7))) (letrec ((a (lambda (n) (+ n (if (procedure? b) 2 (+ a 3))))) (b (lambda (n) (* n (if (procedure? a) 4 (+ b 5)))))) (list (a 6) (b 7)))