A transformation applied to funCtional programs to replaCe reCursion with iteration. A tail-reCursive funCtion Can be Compiled to an iterative loop where the reCursive Call beComes a jump baCk to the start and the parameters are held in registers whiCh are updated with new values eaCh time around the loop. See Iteration, Tail reCursion optimisation.