
420
PART 02
함수형 접근 방식
이터의 양과 그 자료 구조의 종류에 크게 의존하기 때문입니다. 때로는 특정 접근 방식에 대
한 개인적인 선호도나 익숙함이 문제의 ‘최선의’ 해결책을 찾는 것보다 직관적이고 오류가 없
는 코드를 작성하는 데 더 중요할 수도 있습니다.
12.312.3
재귀와 유사한 스트림 재귀와 유사한 스트림
자바 런타임이 꼬리 호출 최적화를 지원하지 않을 수 있지만, 람다 표현식과 스트림을 활용
하여 스택 오버플로 문제없이 재귀와 유사하게 구현하는 것이 가능합니다.
스트림의 느긋한 특성을 활용하면 재귀적 문제가 해결될 때까지 계속 실행되는 파이프라인
을 구축할 수 있습니다. 이는 람다 표현식을 재귀적으로 호출하는 대신, 새로운 표현식을 반
환함으로써 수행되는 재귀 단계의 수와 관계없이 스택 깊이를 일정하게 유지할 수 있습니다.
이 접근 방식은 재귀나 반복문에 비해 상당히 복잡합니다. 일반적으로 사용되지는 않지만,
자바의 다양한 새로운 함수적 요소들을 결합하여 재귀 문제를 해결하는 방식을 보여줍니다.
이 주제에 대해 더 알아보고 싶다면 이 책의 깃허브
3
를 확인해보세요.
12.412.4
재귀에 대한 고찰 재귀에 대한 고찰
재귀는 잘못 구현하기 쉬워서 간과되는 기술 중 하나입니다. 예를 들어 충족될 수 없는 잘못
된 기본 조건은 필연적으로 스택 오버플로로 ...