I would just like to point out that the example is not doing calculus, it is not taking a function x^3 and returning a function 3x^2 it is using a repetitive process to narrow in an approximation of the result. It is a generally applicable method for any value that narrows in on something. The same thing can be done in C with function pointers, whilst a great algorithm it is not call to functional programming. I love functional programming and wish people would stop being entranced by maths examples.