: 자기 자신을 호출하는 함수, 종료조건이 충족될 때까지 반복적으로 스스로를 불러내면서 주어진 작업을 수행한다.
- 성능 문제
재귀함수는 호출될 때마다 메모리 스택에 쌓이고
스택이 넘쳐버리면 메모리 부족으로 에러 발생할 수 있다.- 해결
이 문제를 해결하기 위해 많은 언어들에서는 꼬리 재귀 최적화라는 기능을 제공한다.
꼬리 재귀 최적화 tail call optimization
: 재귀함수를 컴퓨터가 재해석해서 선형 알고리즘으로 만들어 실행한다. 때문에 아무리 반복이 많이 일어나도 스택이 넘치지 않는다.