FP   Functional Programming   함수형 프로그래밍

(2024-12-03)

함수형 언어, 함수형 프로그래밍 언어, 순수 함수


1. 함수프로그래밍 (Functional Programming)                   ☞ 프로그래밍 패러다임 참조함수들의 집합/조합으로써 프로그램을 구성하는 프로그래밍 기법
     - 프로그램 제어함수로써 추상화시킴

  ㅇ 큰 틀에서, 선언적/적응적 프로그래밍(Declarative/Applicative Programming) 기법에 속함
     - 외부에서의 부수 효과를 제거하고, 
     - 불변성을 지향하는 프로그램을 작성하고, 
     - 순수 함수선언적으로 사용하는 프로그래밍 방법론

  ㅇ 例) LISP, Scheme, Haskell 등


2. 함수프로그래밍의 특징반복문 보다는 재귀호출 선호
     - 임시 변수에 의한 반복문 처리 보다는 재귀호출에 의한 구현 선호
     - 재귀 호출이 기본이고, 괄호로 프로그램 내포구조를 나타냄
  ㅇ 실행시, 함수의 생성 및 동작이 가능함
  ㅇ 함수인수 또는 반환값으로 함수를 전달할 수 있음 (일급 함수)
  ㅇ 상태 변화를 줄이고, 적정 관리할 수 있도록 추구함
     - 변수의 사용을 억제하여, 가급적 상태 변경을 피하려고 함

  ㅇ 통상, 가독성, 신뢰성, 정확성 면에서, 
     - 함수프로그래밍은, 명령형 프로그래밍 보다 더 좋다고 여겨짐
     - 例로써, 
        . 명령형 프로그래밍은, 프로그램 실행 중 변수가 변할 수 있으므로, 이를 신경써야 하나,
        . 함수프로그래밍은, 변수상태를 갖지 않음

  ㅇ 무 상태성(stateless), 불변성(immutability)를 지향 함


3. [참고]  순수 함수 (Pure Function) 이란?

  ㅇ 주어진 입력에 만 의존할 뿐, 어떤 외부 상태에도 의존하지 않고, 
     - 함수 스코프 밖에 어떠한 변경도 하지 않으며, 
     - 미리 헤아릴 수 있는 일정한 결과값 만을 내놓는,
     - 즉, 부수 효과가 없고, 상태 변화를 일으키지 않는 함수

  ㅇ 순수성 (Purity) 또는 참조 투명성 (Referential Transparency)
     - 함수인수와 리턴값 사이에 순수한 매핑 관계 
        . 즉, 어떤 함수가 항상 동일 입력에 동일 출력 결과 만을 내는 관계로써,
        . 항상, 함수 반환값이 외부 변수에 영향을 받게하면 안됨

프로그래밍 방법론
1. 프로그래밍 기법   2. 구조적 프로그래밍   3. 명령형 프로그래밍   4. 객체지향 프로그래밍   5. 함수형 프로그래밍   6. 프로그램 제어  
용어해설 종합 (단일 페이지 형태)

"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"
     [정보통신기술용어해설]          편집 이력          소액 후원