Recursion호출이 함수 몸체의 제일 마지막에 실행되는 문장이고 리턴값이 다른식에 사용되지 않는경우.
풀기단계에 아무일도 할 필요가 없다.
이경우, 새로운 활성레코드를 Stack에 추가하지 않고 현재 활성레코드에 덮어쓴다. 따라서 메모리사용이 줄고, 실제 성능도 좋아진다. 따라서 가능하면 Recursion을 TailRecursion으로 만드는 것이 좋다.
factorial예제를 보면, 문제를 좀 다르게 정의해야한다.
Factorial.c
TailRecursion (last edited 2012-06-19 14:44:46 by 61)