Recommendations for next-level Clojure


#1

Recommendations for next-level Clojure

There are many classics of functional programming that can help you take your thinking to the next level. My recommendations are for making you think in a new way.

  1. [Structure and Interpretation of Computer Programs][SICP] (SICP)
    [SICP]: https://mitpress.mit.edu/sicp/full-text/book/book.html
  2. [Lisp in Small Pieces][LISP]
    [LISP]: http://www.amazon.com/Lisp-Small-Pieces-Christian-Queinnec/dp/0521545668
  3. [Paradigms of Artificial Intelligence Programming][PAIP]
    [PAIP]: http://norvig.com/paip.html
  4. On Lisp
  5. [To Mock a Mockingbird][mock]
    [mock]: http://www.amazon.com/To-Mock-Mockingbird-Other-Puzzles/dp/0192801422

What are your recommended classics?


#2

Good list of books. I’ve not read Lisp in Small Pieces, but have herd good things about it. SICP is a must IMO. The videos of the lectures from the course the book is based on are also available for free (google SCIP Videos).

PAIP is another great book, as is On Lisp - some really good ‘meat’ in On Lisp.

One I would add is Let Over Lambda, which is one of my favourite books on Macros - this is the one which really got the penny to drop for me. Ironically, after reading it, I write macros far less, but the ones I do write are far better.

Finally, another slightly advanced one is Purely Functional Data Structures, which is fairly advanced, but provides a lot of the underlying philosophy and design of Clojure’s data structures.


#3

Ah, Let Over Lambda is on my list to read. I would like to get through Okasaki but I’m intimidated by it.


#4

I suspect you will find sections of Okasaki which are really good and other sections which will just seem like another language. It is one of those books I can only consume in small doses and then spend some time digesting it. Often, I think I get it only to find on further reading I don’t, then I do and then I dont etc. I like it because I seem to get new thoughts each time I read it - the challenge is in holding on to them!

Let Over Lambda is the one which really showed me the power of lisp and got me thinking differently from my old C mindset. Have had a few emails with Doug, who is a really nice guy and very helpful.


#5

Maybe also a book/tutorial http://www.buildyourownlisp.com/ to see how lisp is built.