If there is one book that made me think differently about programming its this one. Oh I did know common lisp, and other languages like C/C++, Python etc. But till then it was all about language features being built in for me. Which is all good and useful. Only problem is that I didn't realize that all this can be built upon some very simple fundamental concepts. So when this book started with _only_ car, cdr and lam…
> (define (cons a b) (lambda (f) (f a b)))
> (define (car c) (c (lambda (a b) a)))
> (define (cdr c) (c (lambda (a b) b)))
> (car (cdr (cons 1 (cons 2 (cons 3 '())))))
2