The Little Schemer is a delightful book that has been the road to LISP for many people. Highlights include the YCombinator and the metacircular evaluator.
Positive reviews abound, with this book being the key to several ‘aha’ moments:
- “This is a book that literally blew my mind.” Anthony Lewis
- “I recently read The Little Schemer and had my mind blown” Jamie Strachan
- “I found Lisp to be a load of brackets till I read The Little Schemer. It blew my mind, was the best programming book I have ever read.” a1212
- “The Little LISPer blew my mind.” Sal
There is much buzz in the programmer zeitgeist about this book, and whilst the software development world has changed much since it was written – if anything it is coming closer to the ideals of this book. In many ways, it is a timeless classic, and well worth giving a new lease of life in Clojure.
The book deliberately steers away from using library functions, and instead builds up on a minimal set of primitives, in order to be able to build a lisp interpreter for that minimal set of primitives. (In addition to teaching recursion.)
This series of posts is will communicate the big ideas of each Chapter of this book in Clojure as I work through it. I’m not aiming to cover every function or every question – just those that seem the most pertinent or the most useful to the big ideas in the chapter.
Questions
Is this really a good way to learn Clojure?
Fascinating question. I don’t believe the original book was ever intended to teach ‘The Scheme Language’ – but to teach just enough for the reader to get some big ideas in Computer science.
Is this a good way to learn Clojure? No. The book is about deliberately steering away from using library functions, and instead builds up on a minimal set of primitives, in order to be able to build a lisp interpreter for that minimal set of primitives. (In addition to teaching recursion.) You can read more about this idea here.
Where does this fit in the bigger picture?
The theme is Amazing Lisp Books living again in Clojure.
Chapters
Nice, I actually worked through a friend’s copy of “The Little LISPer” in order to learn Clojure. I’ve been meaning to revisit it, as I didn’t know Clojure at all and probably could learn something by going back to it, but haven’t had time.
My code’s online, but unblogged: http://www.assembla.com/code/little_clojure/subversion/nodes
@Michael,
That is a colossal achievement. I had actually worked through it before I saw your post – but I can see you’ve thought quite a bit about how best to map these ideas to Clojure. I had already linked to your post on my Amazing Lisp Books living again in Clojure post. (http://juliangamble.com/blog/2012/07/13/amazing-lisp-books-living-again-in-clojure/)
Can I ask – is there any chance you’d consider doing The Seasoned Schemer Next? 🙂
Hey, thanks. As to “The Seasoned Schemer”, it is on my shelf and awaiting my attention. I’m sidetracked on some Ruby projects right now, but was planning to jump back into the Lisp world again soon.
Great idea! Could we release in ePUB?
Hi, Can I translate these series of article?
Go for it. Please provide attribution to the original.