As part of the Summer of Sexps, we want to collate the best resources for lisp-style programming. If there’s a book, video, podcast, course (or anything else!) that helped you learn or master s-expressions, prefix notation, or anything else lisp related, please list it in the thread, and we’ll keep this post updated!
Highly recommend the Coursera course Programming Languages (Part A, B, C) from University of Washington, Part B teaches Racket. Link: https://www.coursera.org/learn/programming-languages-part-b
For Scheme and Lisp in general I’ve started reading the second edition of Structure and Interpretation of Computer Programs and I’m really enjoying it! It uses Scheme for all of the examples. This book is available for free as a PDF from the 6.001 course page.
When learning Clojure, I really liked Learn to Program the World's Most Bodacious Language with Clojure for the Brave and True
For me personally, this book didn’t work well for me. I found their tendency to use math-based problems in their examples did nothing to further my learning, but instead made it harder. Might be completely personal, but I did want to put it out there.
Quick: An Introduction to Racket with Pictures is a short tutorial that introduces Racket (and a little bit of functional programming) using its built-in picture drawing library.
For a great overview of clojure I really like “[Clojure in a nutshell]”(Clojure in a nutshell by James Trunk - YouTube) by James Trunk. It is half an hour and teaches you everything to get started and beyond.
To train the mind to become a better (functional) coder, I can recommend How To Design Programs. It uses Racket and after doing the course, any lisp will feel like home.
This (freely available online) book Beautiful Racket is
an introduction to language-oriented programming using Racket
The book assumes very little: only that you have done at least a little bit of programming, in any language whatsoever.
The following two appendices of the above book are also great on their own.
- Beautiful Racket: Why language-oriented programming? Why Racket?
- Beautiful Racket: Why Racket? Why Lisp?
The book The Little Schemer is quite famous for being approachable, fun, and insightful.
- The Reasoned Schemer, on logic programming
- The Little Typer, on dependent types (i.e. certain fancy type systems)
- The Little Prover, on mathematically proving and proof assistants
Not exactly on topic, but should you wish to gain some insight into how one might implement a Lisp, you might be interested in Write You A Scheme, Version 2, which shows how to build a Scheme interpreter using Haskell.
I’ve found three more books that are freely available to read in your browser.
Practical Common Lisp
From the preface to the book: “/…/ I’ll help you write several medium-sized programs that actually do things you might find useful: filter spam, parse binary files, catalog MP3s, stream MP3s over a network, and provide a Web interface for the MP3 catalog and server.”
I haven’t read a lot of it, but I found the chapter with practical examples for the
formatfunction to be quite good.
The Scheme Programming Language
This seem to be exactly what you’d expect from a book with “the programming language” in its title.