함수형 프로그래밍: 두 판 사이의 차이
내용 삭제됨 내용 추가됨
편집 요약 없음 태그: 되돌려진 기여 m 모바일 웹 |
편집 요약 없음 |
||
2번째 줄:
'''함수형 프로그래밍'''({{lang|en|functional programming}})은 자료 처리를 [[함수|수학적 함수]]의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 [[프로그래밍 패러다임]]의 하나이다. [[명령형 프로그래밍]]에서는 상태를 바꾸는 것을 강조하는 것과는 달리, 함수형 프로그래밍은 함수의 응용을 강조한다. 프로그래밍이 [[문 (프로그래밍)|문]]이 아닌 식이나 선언으로 수행되는 [[선언형 프로그래밍]] 패러다임을 따르고 있다.<ref name="expression style">{{웹 인용|url=https://wiki.haskell.org/Declaration_vs._expression_style#Expression_style|title=Declaration vs. expression style - HaskellWiki|publisher=}}</ref> 함수형 프로그래밍은 1930년대에 계산가능성, 결정문제, 함수정의, 함수응용과 재귀를 연구하기 위해 개발된 형식체계인 [[람다 대수]]에 근간을 두고 있다. 다수의 함수형 [[프로그래밍 언어]]들은 람다 연산을 발전시킨 것으로 볼 수 있다.
Hope같은 최초의 순수 함수형 언어는 상업적 소프트웨어 개발보다는 학계에서 많은 관심을 받았다. 하지만 [[커먼 리스프]], [[스킴 (프로그래밍 언어)|스킴]], ISLISP, [[클로저 (프로그래밍 언어)|클로져]], Racket, [[얼랭]], [[Objective Caml|OCaml]], [[하스켈]], [[스칼라 (프로그래밍 언어)|스칼라]], [[F 샤프|F#]] 같은 주요 함수형 언어들은 광범위한 기관에서 산업적이고 상업적인 응용 프로그램 개발에 사용되고 있다. 함수형 언어는 R (통계), [[매스매티카]] (기호와 수론 수학), J, K 와 Kx 시스템 기반 (재정 시스템)에서 나온 Q, XQuery/[[XSLT]] ([[XML]]), Opal 같은 특정 분야 프로그래밍 언어(Domain Specific Language)에서도 사용되고 있다. 많이 쓰이는 특정 분야 선언 언어인 [[SQL]]과 [[lex]]/[[Yacc]]는 특히 가변값을 회피하는데 있어 함수형 언어의 요소들을 사용한다.
|