위 글을 클릭해 보면 무슨 장난인가 싶을것이다.
하지만 이것이 재귀를 이해하는 가장 좋은 방법이 아닐까 싶다.
재귀란 자신을 정의할 때 자기 자신을 호출(참조)하는 것이다.
재귀함수란 함수가 자신을 다시 호출하는 형식으로 이루어진 함수를 말한다.
그렇기에 재귀함수에는 종료 조건(Base case)이 있어야 한다.
또한 재귀함수로 작성된 코드는 반복문으로도 작성이 가능하다.
function sum(n){
if(n===1) return 1
return n+sum(n-1)
}
console.log(10) // 55
위 코드는 1부터 n까지의 합을 재귀함수로 짠 코드이다. n이 1이 되기 전까진 sum함수가 호출되며, if(n===1) return 1 가 base case라 할 수 있다.
재귀함수를 사용하는 것 보다 아직은 반복문이 더 익숙하다. 재귀함수를 사용하면 코드가 간결해진다는데 나에게는 아직 간결해진 코드보단 긴 코드가 더 이해하기 쉬운 것 같다.