Home » 재귀호출

재귀호출

WWDC의 자동 메모이제이션 코드 분석

시간이 오래 걸릴 수 있는 비싼 연산 작업이 있고, 이러한 연산을 반복해서 수행해야 하는 상황이 있을 때, 가장 손쉬운 성능 개선 방법은 연산 결과를 캐싱하는 것이다. 연산을 수행하는 함수가 입력이 같을 때 출력이 같은 것이 보장되는 순수한 함수라면, 재계산을 수행하는 것보다 캐시된 내용을 읽어와서 사용하는 것이 훨씬 빠른 것은 자명한 사실이다. 메모이제이션(Memoization) 실제로 이런 종류의 문제는 제법 흔하고 실제로도 계산 결과를 캐시해서 사용하는 것은 좋은 해결책 중 하나이다. 어떤 문제가 더 작은 부분문제들로 나뉠 수 있고, 전체 문제는 작은 부분문제들의… 더 보기 »WWDC의 자동 메모이제이션 코드 분석

재귀호출과 피보나치 수열 탐구

재귀호출은 함수가 그 내부에서 자신을 다시 호출하는 것이다. 이는 언뜻 이상하게 보일 수 있고, 경우에 따라서는 의도치 않은 동작을 하게 할 수 있어서 일반적으로는 지양되는 방법이기는 하나, 대신에 코드가 짧아질 수 있고 실행 로직 자체가 어느 정도 제한된 경우라면 충분히 사용할 수 있다. 특히 하스켈과 같은 함수형 언어에서는 반복문을 돌리는 로직이 없기 때문에 재귀호출을 하는 함수를 자주 사용하게 된다. 더 보기 »재귀호출과 피보나치 수열 탐구