들어가며
연습문제가 엄청 많다. 문제 해결 (Problem solving) 트래이닝 북이라고 생각하면 편하다.
- 언어의 문제
- 번역서의 문제
- 결국 영어를 알아야한다.
- car/cdr/cadr문제
- first/rest/second ...로 치환하는게 맞다고 생각한다
- 다른 언어를 쓰다 이 책을 보면 느끼는 위화감
- function / procedure / application
- 책에서 function / procedure / application 이라 나오면 그냥 함수라 생각하면 된다.
- function / procedure / application
- 책에 연습문제는 해답이 없다.
- 극혐하는 답없는 교재이다.
- 어차피 solution은 나오기 마련이다.
- 답이 있다 하더라도 프로그래밍은 결국 사람 취향에 따라 다르게 나올 수 있다.
- 연습문제에서 이전에 나왔던 것을 물어보는 경우가 있는데, 책 특성상 링크가 안된다.
- 가뜩이나 저자가 생소한 개념 / 단어들을 들고오는데 기억이랑 단어랑 매칭이 잘 안되는 경우가 많음.
- 그래서 어디였지 1장? 3장이라고 하는데 그게 몇페이지지? 하면서 찾아야함.
- a연습문제를 건너 뛰었는데 a연습문제랑 연관된 b연습문제가 나타남.
- 리펙토링
- 4장부터 함수 이름이나 인자 순서같은걸 내가 이해하는 방식으로 코드를 변경한다면
- ide도 별로고 새로 추가되는 코드를 따라갈 수 가 없다.
- 4장부터 함수 이름이나 인자 순서같은걸 내가 이해하는 방식으로 코드를 변경한다면
문제해결능력 리펙토링 무엇을 모르는지
끝까지 보는것이 최우선 알고리즘 문제는 두번째
단순 설명이 아니라 무엇이 가능한지 가능성을 보여줌. 1장
- 일급함수(First-class Function)
- 고차 함수(Higher-order function)
- Tail Recursion
- 평가전략
- Call-by-Value(Applicative-Order Evaluation)
- Call-by-Name(Normal-Order Evaluation)
- Call-by-Need(Lazy Evaluation) 2장 3장
- Lazy Sequence(책에선 Stream) 4장
- Lisp 인터프리터 구현 3장
- Lisp 컴파일러 구현
↦ map to