Given a function fr from real numbers to real numbers. Program a higher-order function derivative, which dfferentiates a function like fr.
In this exercise you are asked to work numerically, in order to approximate the function. This stands as a contrast to symbolic differentiation.
As examples, (derivative (lambda (x) (* x x))) should behave (almost) as (lambda (x) (* 2 x)); (derivate sin) should behave almost as cos; and (derivate exp) should behave almost like exp itself. Play with derivative to confirm these observations. (Map your functions over a number of numeric values, and compare...).
The inspiration to the exercise comes from Christian Wagenknecht's book 'Programmierparadigmen', from Springer Verlag.