(define make-repeated-version-of (lambda (f) (define the-repeated-version (lambda (b n) (if (= n 0) b (the-repeated-version (f b) (- n 1))))) the-repeated-version)) (define make-big-number (lambda (x) (define the-big-number (* x 10000000000)) the-big-number)) (define make-multiplier (lambda (coefficient) (lambda (number) (* number coefficient)))) (define double (make-multiplier 2)) (define triple (make-multiplier 3)) (define repeatedly-double (make-repeated-version-of double)) (define make-averaged-procedure (lambda (procedure1 procedure2) (define the-averaged-procedure (lambda (x) (/ (+ (procedure1 x) (procedure2 x)) 2))) the-averaged-procedure)) (define square (lambda (x) (* x x))) (define p1 (make-averaged-procedure double square)) (define p2 (make-averaged-procedure triple square))