함수형 프로그래밍

정의

  • Functional Programming, FP
  • 상태(state)와 가변 데이터(Mutability)를 멀리하는 프로그래밍 패러다임의 하나
  • 즉, 상태를 저장하지 않는 무상태(stateless), 불변성(Immutability)을 지향한다.
  • 데이터 변경을 최소화하고, 순수 함수를 활용해 부작용을 줄이는 게 목표
용어 영문 정의
순수 함수 pure function 같은 입력에 대해 항상 같은 출력을 반환하는 함수
부작용 side effect 함수가 원래 목적의 값을 계산하는 것 외에 외부에 영향을 미치는 모든 행위

파이썬에서의 함수형 프로그래밍

  • 파이썬은 절차적, 객체지향, 함수형 프로그래밍 방식을 모두 지원

함수형 프로그래밍의 장점

  • 코드의 가독성이 높아짐
  • 디버깅이 용이
  • 병렬처리를 효율적으로 수행할 수 있음

함수형 프로그래밍의 단점

  • 객체지향이나 명령형 프로그래밍에 익숙한 경우, 진입장벽이 존재
  • 사고방식 자체를 전환해야 하므로 초기 진입 장벽이 높음
  • 모나드나 펑터와 같은 고차원적 개념이 이해하기 어려움

Reference

방송통신대 - 오픈소스기반 데이터분석 (정재화)

https://ko.wikipedia.org/wiki/함수형프로그래밍

Comments