FP   Functional Programming   함수형 프로그래밍

(2024-07-11)

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


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

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

  ㅇ 例) LISP, Scheme, Haskell 등


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

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

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


3. 순수 함수 (Pure Function)

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

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

[프로그래밍 방법론]1. 프로그래밍 기법   2. 구조적 프로그래밍   3. 명령형 프로그래밍   4. 객체지향 프로그래밍   5. 함수형 프로그래밍   6. 프로그램 제어  


"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"
     [정보통신기술용어해설]       편집·운영 (차재복)          편집 후원          편집 이력
  1. Top (분류 펼침)      :     1,591개 분류    6,512건 해설