<< Previous exercise (1.43) | sicp-solutions | Next exercise (1.45) >>

(define dx 0.00001) (define (smooth f) (lambda (x) (/ (+ (f (- x dx)) (f x) (f (+ x dx))) 3))) (define (n-fold-smooth f n) ((repeated smooth n) f))

The input needs only the function and the number of smoothing procedure, so it should not include x.

Be aware below is **WRONG**:

```
(define (n-fold-smooth f n)
(repeated (smooth f) n))
```

This is illustrated below for *n=2*

;; goal: n=2 -> "smooth the smoothed function" ((repeated smooth 2) f) ;; -> smooth(smooth(f)) [Correct] (repeated (smooth f) 2) ;; -> smooth(f(smooth(f)) [Incorrect]