- 함수형 언어는 프로그램을
수학적 함수
로 표현함 - 매개변수로 입력을 받아서 처리한 후 반환값으로 출력하는 함수
- 특징
- 변수, 대입문 없음
- 반복 X -> 반복은 재귀호출로
- 함수는 일등급값으로 인자로 사용될 수 있고 반환값으로도 사용될 수 있음
- 장점
- 기계 모델과 무관
- 프로그램을 함수로 보는 일관된 관점
- 수학을 기반으로 프로그램의 의미를 명확하게 정의 가능
- 람다식
- 일등급값(매개변수, 반환값으로 사용 가능)
- 익명함수를 표현하기 위한 식
베타-축약
: 함수 적용을 매개변수에 대한 치환 연산의 결과로 대신하는 변환고차함수
: 함수를 인자로 받거나 함수를 결과로 리턴하는 함수
- LISP 후속 함수형 언어
- 리스트
- 모든 수식은 전위 표기법 형태로 표현
- 나머지 부분 ppt 참고
- 함수형 프로그래밍 언어
- 안전한 타입 시스템
- 자동 추론 시스템
- 함수의 다형성: 함수를 포괄적으로 정의 가능
- 대수적 자료형 지원
- 값들의 패턴 매칭 : 조건문 만들 수 있음
- 간단하고 강력한 예외처리
- 메모리 재활용
- 리스트(원소 모두 같은 타입), 튜플(원소 다른 타입이어도 됨)
- ML은 함수의 중복정의(overloading)을 허용하지 않음
- 커링 함수: n개의 매개변수를 받는 하나의 함수를 단일 매개변수로 받는 n개 함수들의 열로 만드는 것
- 고차함수(higher order function): 함수를 인자로 받아 적용