Tail recursion optimisation

(TRO) When the last thing a function or procedure does is to call itself, it is not necessary to retain the calling environment.

This is important when a procedure calls itself recursively many times for, without tail recursion optimisation, the environments of earlier invocations would fill up the memory only to be discarded when (if) the last call terminated.

Tail recursion optimisation is a special case of last call optimisation but it allows the further optimisation that some arguments may be passed in situ, possibly in registers.

It allows recursive functions to be compiled into iterative loops.

See also conversion to iteration, tail recursion modulo cons.

< Previous Terms Terms Containing tail recursion optimisation Next Terms >
tagged types
tag name
tail circuit
tail recursion
tail recursion modulo cons
conversion to iteration
last call optimisation
tail recursion
tail recursion optimisation