SICP - Solution: Exercise 1.44
October 29, 2018
Exercise 1.44 #
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 obtain the n-fold smoothed function. Show how to generate the $n$-fold smoothed function of any given function usingsmooth
andrepeated
from Exercise 1.43.
Solution #
By definition, the smooth
function is:
(define (smooth f)
(lambda (x)
(/ (+ (f (- x dx)) (f x) (f (+ x dx))) 3)))
Then we can define smooth-nth
:
(define (smooth-nth f n)
((repeated smooth n) f))