tail recursion optimisation TRO <programming> (TRO) Discarding the calling environment ({call stack} {frame}) when the last thing a function or procedure does is to call itself. This is important when a procedure calls itself {recursive}ly many times since, 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}. (2006-04-16)