Table of Contents

Functional / Meta Programming

Good introduction is Functional Programming for the rest of us

My Cursory opinion

Functional / metaprogramming seems to try and do a lot of work to make small snippets of code that generate more code. The ultimate version of Don't Repeat Yourself. However, there are other deficiencies of programming that seem more important right now. It feels like it's making Bret Victor's Microwave problem even worse! Or, like, why can't a machine take care of the opening and closing of HTML tags for you?

Functional programming languages are really helpful when you're faced with writing a lot of code and you want to “write code that writes code for you”.

Everybody recommends a combination of SICP and Paul Graham's book, ANSI Lisp and On Lisp. As well as Programming Pearls and K&R.

Potential Cons

Udacity Design of Computer Programs

https://www.udacity.com/course/viewer#!/c-cs212

Doing this one first, as Norvig seems more approachable.

Structure and Interpretation of Computer Programs

So far excellent class.

TODO

Still stuck on Square Roots by Newton's Method, and how averaging works out okay…

Nice summary of different programming styles at Leptonica Design Principles Paul Graham says live in the future and learn about it.