함수형 프로그래밍, FP(Functional Programming)
함수형 프로그래밍 이란?
함수형 프로그래밍은 자료 처리를 수학점 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임의 하나.
- 명령형 프로그래밍: 상태를 바꾸는것을 강조
- 함수형 프로그래밍: 함수의 응용을 강조
선언형 프로그래밍 패러다임 (프로그래밍이 문이 아닌 선언으로 수행되는) 을 따름
함수형 프로그래밍은 1930년대에 계산 가능성, 결정문제, 함수정의, 함수 응용과 재귀를 연구하기 위해 개발된 형식체계인 람다대수에 근간을 두고 있음.
다수의 함수형 프로그래밍 언어들은 람다 연산을 발전시킨 것
수학적 함수와 명령형 프로그래밍에서 사용되는 함수의 차이
- 명령형 함수
- 프로그램의 상태의 값을 바꿀 수 있는 부작용
- 참조 투명성 없음
- 같은 코드라도 실행되는 프로그램의 상태에 따라 다른 결과값
- 함수형 코드
- 함수의 출력값은 그 함수에 입력된 인수에만 의존
- 인수 x에 같은 값을 넣고 함수 f를 호출하면 항상 f(x)라는 결과 나옴
- 이것이 함수형 프로그래밍으로 개발하려는 핵심 동기중 하나
함수형 프로그래밍 기본 요소
- pure function: 부작용이 없는 함수, thread-safe하여 병렬 계산 용이
- anonymous function: 익명 함수
- higher-order function: 고차(고계)함수, 함수를 인자나 리턴으로 다루는 함수
- 코틀린에서는
(1..10).map {it * it}
출처: 위키피디아, 허준영교수님 github
참고자료