본문 바로가기
[개발] Info/용어

함수형 프로그래밍

by Devsong26 2024. 6. 27.

함수형 프로그래밍은 수학적 함수의 개념에 기반한 프로그래밍 패러다임으로, 프로그램을 함수의 조합으로 구성하는 것을 강조합니다. 함수형 프로그래밍의 주요 특징과 원칙에 대해 자세히 설명드리겠습니다.

주요 특징

  1. 순수 함수 (Pure Function):
    • 순수 함수는 동일한 입력에 대해 항상 동일한 출력을 반환하며, 함수 외부의 상태나 변수에 의존하지 않습니다. 또한, 함수 실행의 부작용(side effect)이 없습니다.
    • 예를 들어, f(x) = x + 2는 순수 함수입니다. 입력 x가 같다면 항상 출력도 같습니다.
  2. 불변성 (Immutability):
    • 함수형 프로그래밍에서는 데이터가 불변(immutable)입니다. 데이터를 변경하는 대신, 변경된 사본을 만듭니다.
    • 이는 프로그램의 예측 가능성을 높이고, 디버깅을 쉽게 만듭니다.
  3. 고차 함수 (Higher-order Function):
    • 함수형 프로그래밍에서는 함수를 일급 객체(first-class citizen)로 다룹니다. 즉, 함수를 다른 함수의 인자로 전달하거나 반환값으로 사용할 수 있습니다.
    • 예를 들어, map, filter, reduce와 같은 함수들은 다른 함수를 인자로 받아서 작동합니다.
  4. 함수 합성 (Function Composition):
    • 작은 함수들을 조합하여 더 복잡한 함수를 만들 수 있습니다. 이는 재사용성과 모듈성을 높이는 데 도움이 됩니다.
    • 예를 들어, h(x) = f(g(x))와 같이 함수 f와 g를 합성하여 새로운 함수 h를 만들 수 있습니다.
  5. 지연 평가 (Lazy Evaluation):
    • 함수형 프로그래밍 언어는 필요할 때까지 표현식을 평가하지 않는 지연 평가(lazy evaluation)를 지원할 수 있습니다.
    • 이는 성능 최적화와 메모리 사용량 감소에 도움이 됩니다.

주요 개념

  1. First-Class Functions:
    • 함수형 프로그래밍에서 함수는 다른 데이터 타입처럼 변수에 저장될 수 있고, 함수의 인자로 전달되거나 반환될 수 있습니다.
  2. Recursion (재귀):
    • 함수형 프로그래밍에서는 반복문 대신 재귀를 사용하여 반복적인 작업을 수행합니다.
    • 재귀는 함수가 자기 자신을 호출하는 것을 의미합니다.
  3. Closures (클로저):
    • 클로저는 함수와 그 함수가 선언될 때의 렉시컬 환경(Lexical Environment)의 조합입니다. 클로저는 함수가 선언된 환경을 기억하여, 함수가 그 환경 내의 변수에 접근할 수 있게 합니다.

'[개발] Info > 용어' 카테고리의 다른 글

데몬 스레드  (0) 2024.06.29
하이퍼스레딩  (0) 2024.06.29
애자일  (0) 2023.12.31
나선형 모형  (0) 2023.12.31
폭포수 모형  (0) 2023.12.31