Suppose I have an existing function defined, for example
f[x_] := x + 42
Now suppose I want to, at a later point, redefine the function f to do something slightly different. Perhaps, say, I want f to return double what it currently returns.
My first inclination is to try
f[x_] := f[x] * 2 ,
but that results in a never-ending recursive definition. How can I specify a new definition for f in terms of the *current* definition of f ?