When the last thing a function (or procedure) does is to call itself. Such a function is called tail recursive. A function may make several recursive calls but a call is only tail-recursive if the caller returns immediately after it. E.g. f n = if n < 2 then 1 else f (f (n-2) + 1) Here the both calls to fib are recursive but only the outer one is tail recursive. See tail recursion optimisation, and, if you aren't sick of them already, recursion, tail recursion. [Jargon File] |