Skip to content

Latest commit

 

History

History
33 lines (29 loc) · 1.29 KB

FP.md

File metadata and controls

33 lines (29 loc) · 1.29 KB

함수형 프로그래밍(Functional Programming)

정의

  • 수학 함수를 사용하고 부수 효과를 피하는 것이 특징인 프로그래밍 패러다임
  • 부수 효과 없이 순수 함수만 사용하는 프로그래밍 스타일

코드 분류

  • 액션
    • 실행 시점이나 횟수 또는 둘 다에 의존하는 것
    • 부수 효과(side-eeffects), 부수 효과가 있는 함수(side-effecting function), 순수하지 않은 함수(impure function)
    • 액션 안에는 계산과 데이터, 또 가른 액션이 숨어 있을 수 있다.
  • 계산
    • 입력값으로 출력값을 만드는 것.
    • 같은 입력값을 가지고 계산하면 항상 같은 결과값이 나옴.
    • 순수 함수(pure function), 수학 함수(mathematical function)
  • 데이터
    • 이벤트에 대해 기록한 사실.
    • 장점
      • 직렬화
      • 동일성 비교
      • 자유로운 해석
    • 단점
      • 반드시 해석 필요

불변성

불변 데이터 구조를 만들기 위해 두 가지 원칙을 사용

  1. 카피-온-라이트(copy-on-write) 변경시 복사본을 만든다.
  2. 방어적 복사(defensive copy) 보관하려고 하는 데이터의 복사본을 만든다.

Refernece

  • 에릭 노먼드, 쏙쏙 들어오는 함수형 코딩