꼬리재귀의 대한 교재 설명은 아래와 같다
call stack으로 프로시저간의 호출을 안전하게 관리할 수 있다. x86-64 개발자들이 오랜 세월에 걸쳐 얻은 시행착오의 결과물이다.
그래서 이 꼬래재귀를 최적화 시킨 함수와 일반 재귀와의 큰 차이점은 반환값에서 추가 연산을 필요로 하지 않는다는 점이다.
이 최적화는 모범 답안에도 설명 되어 있듯이 재귀 함수의 마지막 연산만 호출 스택에 남겨두고, 나머지를 제거함으로써 함수가 반환될 때 호출 스택을 재사용 한다고 한다.
일반함수와 다르게 꼬리재귀 최적화 함수에서는 반환값을 바로 리턴하지 않고 파라미터로 전달하는 것을 볼 수 있다.
https://bozeury.tistory.com/96
https://www.youtube.com/watch?v=sSno9rV8Rhg&t=260s