* Introduction to Functional Programming - 함수형 프로그래밍 언어란 무엇인가
- 프로그램 패러다임
프로그램을 잘 만들기 위한 생각 - 버그가 없고, 생산성이 높다
- 함수형 프로그래밍 - side effect보다는 함수의 리턴값에 의존해서 프로그램을 만들어가는 프로그래밍 패러다임
side effect - 함수나 표현식이 내부에서 상태값을 변경하거나 의존하는 방식으로 동작하면, 이 함수나 표현식은 사이드 이펙트가 있다.
- Refernetial transparency - 참조 투명성
동일한 입력값에 대해서 함수는 항상 동일한 리턴 값을 주어야 한다. 사이드 이펙트가 있으면 참조 투명성을 해친다.
사이드 이펙트가 있어도 참조 투명성을 해치지 않는 경우도 있다.
- 사이드 이펙트를 줄이는게 좋다. -> 버그가 발생하기 쉽기 때문이다.
- 사이드 이펙트는 무조건 안 좋은 건가? -> 사이드 이펙트를 없이 프로그램을 구성하는게 이상적이지만, 실제로 그러기도 힘들고, 잘 활용하는 편이 좋다.
- functional programming & imperative programming
- 컴파일러가 제공할 수 있는 코드를 프로그래머가 써야하는가?
- lisp은 데이터와 코드를 구분하지 않는다.
- 다음 주자: 김성원 - 카드를 가지고 놀기 - 응용을 한다면 시타델에서