[[Recursion]]호출이 함수 몸체의 제일 마지막에 실행되는 문장이고 리턴값이 다른식에 사용되지 않는경우. 풀기단계에 아무일도 할 필요가 없다. 이경우, 새로운 활성레코드를 [[Stack]]에 추가하지 않고 현재 활성레코드에 덮어쓴다. 따라서 메모리사용이 줄고, 실제 성능도 좋아진다. 따라서 가능하면 [[Recursion]]을 TailRecursion으로 만드는 것이 좋다. factorial예제를 보면, 문제를 좀 다르게 정의해야한다. {{{#!latex $$ F(n,a) = \left\{ \begin{array}{ll} a & \textrm{if} \quad n=0,n=1 \\ F(n-1,na) & \textrm{if} \quad n <1 \end{array} \right $$ }}} [[Factorial.c]]