#
N-fold smoothed function
^{
}

The idea of smoothing a function is an important concept in signal processing. If
`f`

is a function and
`dx`

is some small number, then the smoothed version of
`f`

is the function whose value at a point
`x`

is the average of
`f(x − dx)`

,
`f(x)`

, and
`f(x + dx)`

. Write a procedure
`smooth`

that takes as input a procedure that computes
`f`

and returns a procedure that computes the smoothed
`f`

. It is sometimes valuable to repeatedly smooth a function (that is, smooth the smoothed function, and so on) to obtained the
`n`

-fold smoothed function. Show how to generate the
`n`

-fold smoothed function of any given function using
`smooth`

and
`repeated`

from exercise
1.43
.

```
(define (square x)
(* x x))
(define (cube x)
(* x x x))
(check-equal? (round ((smooth square) 3)) 9.0)
(check-equal? (round ((smooth cube) 10)) 1000.0)
```