last call optimisation definition programming
(Or "tail call optimisation") Discarding the immediate calling context (call stack frame
) when the last action of a function or procedure, A, is to call another function or procedure, B. B will then return directly to A's caller, or possibly further up the call stack if the optimisation has been applied to several consecutive calls.
Last call optimisation allows arbitrarily deep nesting of procedure calls without consuming memory to store useless environments. This is particularly useful in the special case of tail recursion optimisation
, where a procedure's last action is to call itself (possibly indirectly).