Skip to content

Latest commit

 

History

History
40 lines (36 loc) · 1.7 KB

chap13.md

File metadata and controls

40 lines (36 loc) · 1.7 KB

CHAP 13

함수형 언어

  • 함수형 언어는 프로그램을 수학적 함수로 표현함
  • 매개변수로 입력을 받아서 처리한 후 반환값으로 출력하는 함수
  • 특징
    • 변수, 대입문 없음
    • 반복 X -> 반복은 재귀호출로
    • 함수는 일등급값으로 인자로 사용될 수 있고 반환값으로도 사용될 수 있음
  • 장점
    • 기계 모델과 무관
    • 프로그램을 함수로 보는 일관된 관점
    • 수학을 기반으로 프로그램의 의미를 명확하게 정의 가능

람다 계산법

  • 람다식
    • 일등급값(매개변수, 반환값으로 사용 가능)
    • 익명함수를 표현하기 위한 식
  • 베타-축약: 함수 적용을 매개변수에 대한 치환 연산의 결과로 대신하는 변환
  • 고차함수: 함수를 인자로 받거나 함수를 결과로 리턴하는 함수

Scheme

  • LISP 후속 함수형 언어
  • 리스트
  • 모든 수식은 전위 표기법 형태로 표현
  • 나머지 부분 ppt 참고

ML

  • 함수형 프로그래밍 언어
  • 안전한 타입 시스템
  • 자동 추론 시스템
  • 함수의 다형성: 함수를 포괄적으로 정의 가능
  • 대수적 자료형 지원
  • 값들의 패턴 매칭 : 조건문 만들 수 있음
  • 간단하고 강력한 예외처리
  • 메모리 재활용
  • 리스트(원소 모두 같은 타입), 튜플(원소 다른 타입이어도 됨)
  • ML은 함수의 중복정의(overloading)을 허용하지 않음
  • 커링 함수: n개의 매개변수를 받는 하나의 함수를 단일 매개변수로 받는 n개 함수들의 열로 만드는 것
  • 고차함수(higher order function): 함수를 인자로 받아 적용