프로그래밍 언어론 · 14강

함수형 프로그래밍 언어

변수와 대입문 없이도 프로그램을 짤 수 있는지를 봅니다. 수학적 함수에서 출발해 Scheme, ML, Haskell, F#이 같은 생각을 어떻게 적는지 따라가고, 명령형 언어와 견줍니다. 프로그래밍을 한 번쯤 해 본 사람을 위해 9편으로 나눴습니다.

  1. 1변수 없이 프로그램을 짤 수 있을까?명령형과 함수형, 폰 노이만 구조와 수학적 함수
  2. 2같은 함수를 두 번 부르면 답도 같을까?수학적 함수, 참조 투명성, 람다 식, 고차 함수, 재귀
  3. 3괄호만으로 프로그램을 쓸 수 있을까?Lisp의 원자와 리스트, Scheme, 일급 함수, 평가
  4. 4변수 없이 이름은 어떻게 붙일까?LAMBDA, DEFINE, LET, IF, COND
  5. 5반복문 없이 리스트를 끝까지 볼 수 있을까?QUOTE, CAR·CDR·CONS, member, 꼬리 재귀
  6. 6함수를 재료로 넣으면 무엇을 만들 수 있을까?함수 합성, compose, map
  7. 7함수형 언어도 타입을 엄격하게 따질까?ML: 타입 추론, 패턴 매칭, 리스트, filter, 커링
  8. 8끝이 없는 리스트를 만들 수 있을까?Haskell: 순수 함수형, 리스트 내포, 퀵소트, 지연 평가
  9. 9함수형과 명령형, 하나만 골라야 할까?F#, 명령형 언어 속 함수형 기능, 두 갈래의 비교

내용과 예제는 Robert W. Sebesta의 《Concepts of Programming Languages》 12판 15장을 따랐습니다.