[Kotlin] Kotin FP (1) - Functional Programming (함수형 프로그래밍)

yuseon Lim·2021년 4월 20일
0

Kotlin

목록 보기
9/11
post-thumbnail
post-custom-banner

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

함수형 프로그래밍 이란?

함수형 프로그래밍은 자료 처리를 수학점 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임의 하나.

  • 명령형 프로그래밍: 상태를 바꾸는것을 강조
  • 함수형 프로그래밍: 함수의 응용을 강조

선언형 프로그래밍 패러다임 (프로그래밍이 문이 아닌 선언으로 수행되는) 을 따름
함수형 프로그래밍은 1930년대에 계산 가능성, 결정문제, 함수정의, 함수 응용과 재귀를 연구하기 위해 개발된 형식체계인 람다대수에 근간을 두고 있음.

다수의 함수형 프로그래밍 언어들은 람다 연산을 발전시킨 것

수학적 함수와 명령형 프로그래밍에서 사용되는 함수의 차이

  • 명령형 함수
    • 프로그램의 상태의 값을 바꿀 수 있는 부작용
      • 참조 투명성 없음
      • 같은 코드라도 실행되는 프로그램의 상태에 따라 다른 결과값
  • 함수형 코드
    • 함수의 출력값은 그 함수에 입력된 인수에만 의존
    • 인수 x에 같은 값을 넣고 함수 f를 호출하면 항상 f(x)라는 결과 나옴
    • 이것이 함수형 프로그래밍으로 개발하려는 핵심 동기중 하나

함수형 프로그래밍 기본 요소

  • pure function: 부작용이 없는 함수, thread-safe하여 병렬 계산 용이
  • anonymous function: 익명 함수
    • 코틀린에서는 {x -> x * x}
  • higher-order function: 고차(고계)함수, 함수를 인자나 리턴으로 다루는 함수
    • 코틀린에서는 (1..10).map {it * it}

출처: 위키피디아, 허준영교수님 github

참고자료

profile
🔥https://devyuseon.github.io/ 로 이사중 입니다!!!!!🔥
post-custom-banner

0개의 댓글