I wish to clarify an aspect which I find interesting and potentially useful.
If I define a function in the following manner:
f[x_] := f[x] = (*What the function does*)
and then I evaluate the function at "a", does this mean that later it will treat f(a) as a constant?
If so, theoretically it shouldn't increase my computation time, if let's say I implement a For loop where for different ranges I use f(a), f(b), f(c),.. , compared to when I use instead upfront defined variables (A=f(a), B=f(b), C=f(c),..), right?
Or this feature is only useful for recursions?