함수형 프로그래밍(Clean, F#, Lazy K, Miranda, ML, OCaml, Scala, Scheme, Unlambda)
- 최초 등록일
- 2017.04.12
- 최종 저작일
- 2012.03
- 19페이지/ 한컴오피스
- 가격 3,000원
목차
Ⅰ. 서론
Ⅱ. 본론
1. 역사
2. 대표적인 함수형 언어
본문내용
서론
함수형 언어(함수 언어, 영어 : functional language )는 함수형 프로그래밍을 기본 스타일로 추천하는 기능을 가진 프로그래밍 언어로 함수형 프로그래밍 언어의 약어이다.
함수형 프로그래밍에서는 프로그램의 구성에 함수를 많이 사용하기 때문에 대부분의 함수형 언어에서는 함수를 일급 객체로 취급하고, 이론적인 계산 모델로도 일급 객체로 함수를 취급하며 계산 및 재 작성 때 사용하고 있다.
함수에 대한 인수가 프로그램에 입력으로 함수를 인자로 작용하고 평가하여 얻어지는 값이 프로그램의 출력이라고 하면 컴퓨터 프로그램은 함수로 간주 할 수 있다. 여기서, 입력과 출력은 저장 장치에 있는 파일의 종류뿐만 아니라, 마우스의 움직임 정보 등과 입력되는 것과 화면에 표시되는 등도 출력에 해당되는 함수형 프로그래밍에서는 그들을 다루는 함수로 모델링한다.
순수 함수형 언어에서는 참조 투명성(Referential transparency)이 항상 유지된다는 의미에서 모든 수식과 함수의 평가시에 부작용을 낳지 않는다. 순수 함수형 언어 인 Haskell과 Clean 비 정격 평가를 기본으로 하고 있으며, 인수는 기본적으로 지연 평가된다. 한편, Idris는 순수하지만 정격 평가를 채용하고 있다. 입출력 등을 참조 투명성(Referential transparency)을 유지 한 채로 실현하기 위해, 예를 들어 Haskell에서는 모나드, Clean 에서는 고유 형이라는 특수한 형태를 통해 일관성있는 표현을 제공한다.
비 순수 함수형 언어에서는 참조 투명성(Referential transparency)을 끊는 부작용 같은 수식과 함수도 존재한다. LISP 등으로 데이터 구조의 파괴적인 변경 등의 부작용을 많이 사용한 프로그래밍을 하면 절차적 프로그래밍이다. 종종 비 순수 함수형 언어의 평가 전략 은 정격 평가 (선행 평가)이지만, 지연 평가할 부분을 명시하여 무한한 목록 등을 취급 할 것도 있다.
JavaScript와 Java등 최근의 고급 언어는 함수형 언어의 기능과 특징을 도입하고 있는 것도 있다.
참고 자료
없음