Section
illustrated with two examples the need for
accumulating extra knowledge. In some cases, the accumulation makes it
easier to understand a function; in others it is necessary for the function
to work properly. In both cases, however, we first chose one of the
available design recipes, inspected the function, and then revised or fixed
it. Put more generally, adding an ACCUMULATOR,
that is, a parameter that accumulates knowledge, is something that we add
to a function after we have designed a function, not before.
The keys to the development of an accumulator-style function are: