함수형 프로그래밍의 재귀

프로그래밍 패러다임 개념

Eleanor Thomas

Senior Data Analytics Engineer

재귀란?

  • 재귀 함수: 자기 자신을 호출하는 함수
  • 종료 조건(기저 사례)이 있어야 함
  • 수정된 입력으로 자기 자신을 다시 호출함
0 | def my_recursive_function(input_value):
1 |     # base case
2 |     if base_case_condition:
3 |        return base_case_output_value
4 |     # recursive call
5 |     else:
6 |        return my_recursive_function(modified_input_value) + some_modification
프로그래밍 패러다임 개념

왜 재귀를 쓰나요?

  • 어떤 문제는 재귀로 정의하면 더 간단합니다
  • 피보나치 수:
    • 0, 1, ...
    • 0, 1, 1, ...
    • 0, 1, 1, 2, ...
    • 0, 1, 1, 2, 3, ...
프로그래밍 패러다임 개념

재귀 예시 더 보기

파일 시스템

  • 파일 시스템 탐색
프로그래밍 패러다임 개념

재귀 예시 더 보기

파일 시스템; 정렬 방법

  • 파일 시스템 탐색
  • 합병 정렬(Merge Sort) 등 일부 정렬 알고리즘
프로그래밍 패러다임 개념

재귀 예시 더 보기

파일 시스템; 정렬 방법; 데이터 구조

  • 파일 시스템 탐색
  • 합병 정렬(Merge Sort) 등 일부 정렬 알고리즘
  • 여러 데이터 구조는 재귀적으로 정의됨
프로그래밍 패러다임 개념

재귀 vs 반복

  • 모든 재귀 함수는 반복으로도 작성 가능합니다
  • 반복 함수는 재귀 호출 대신 루프를 사용합니다
def iterative_factorial(n):
    result = 1
    for i in range(1, n + 1):
        result = result * i
    return result
프로그래밍 패러다임 개념

연습해 봅시다!

프로그래밍 패러다임 개념

Preparing Video For Download...