Apps Automotive Beauty Best Books of the Month Women's statement sneakers nav_sap_plcc_ascpsc Unlimited Music. Always ad-free. Learn more. New LG V35 ThinQ | $699.99. Save with Prime Exclusive Phones. Introducing Fire TV Cube Grocery Handmade Personalized Jewelry modern furniture and decor Book a house cleaner for 2 or more hours on Amazon TheGrandTour TheGrandTour TheGrandTour  Echo Fire tablets: Designed for entertainment Kindle Paperwhite GNO Shop now SWMTVT18_gno



on January 3, 2008
This book consists of dozens of exercises that you solve using little snippets of recursive code. It definitely has the feel of a game - Sudoku moreso than Call of Duty.

The key to enjoying this book is to not get hung up on the non-code questions. The book is written as a list of questions and answers, and it's frustrating to try to answer the non-code questions because they are often unguessable:

Q: Is that bad?
A: You must beware of shadows

Quickly read through the non-code questions and answers. But try to answer the code questions - that's the stuff that's fun and interesting.

Q: Write fun? with set? and firsts
A: (define fun? (lambda (rel) (set? (firsts rel))))

You'll find pencil and paper to be too slow for this stuff; a text editor is more convenient. But you need not bother running the code through a compiler - the answers are given on the same page.
8 people found this helpful
0Comment Report abuse
on February 20, 2001
This is a wonderful book for people who enjoy having their minds stretched. It starts from the most elementary concepts (this is a number, this is a symbol) and then proceeds to teach you how to program in scheme (a lisp dialect) using a question-and-answer approach, with the questions on the left hand side of the page and the answers on the right. Most of the teaching is by example; the authors show you something several times in several different guises in order to get you to understand the pattern underlying the programming examples. This form of teaching-by-pattern-recognition is especially useful for scheme, because lisp-based languages represent such a different paradigm from more conventional computer languages that it really helps to have the pattern in mind when you want to write a new function. The authors show how the basic elements of lisp (atoms, numbers and lists) can be used to solve an amazing variety of problems, many of which would be much harder (or impossible) in more conventional computer languages. Most of the book is so easy that a complete novice who had never programmed before could understand it, but the authors sneakily keep increasing the complexity until in the last three chapters they cover continuation-passing style, the applicative-order Y combinator (!) and writing a scheme interpreter in scheme (!!). Some of these topics would go over the head of most computer science Ph.D.'s (go ahead, ask one what the Y combinator is -- I dare you!). This is not the book to read if you're looking for a "teach yourself visual basic in 20 minutes" kind of book, but if you like programming and you enjoy having your mind stretched, you could not do better than this book (or its companion book, the Seasoned Schemer).
87 people found this helpful
22 comments Report abuse
on June 7, 2011
Little Schemer is without a doubt one of the best books I have ever read on the subject of recursion, and what is interesting because they never really go into a formal definition of what recursion is, as most texts on computer science try to. Instead they show the reader time and time again what recursion is, while providing a great series of rules (commandments) on how to get the most out of recursion, particually in a tail-recursive language like Scheme.

The book is structured as a series of questions and answers. Each page has several questions on the left hand side, with answers on the right hand side. The overall interpretation of the book is that you can read this without a computer, using pencil and paper to work through the many questions in the book.

As the reader progresses they will continue to develop and reimplement many useful tools in Scheme that become more and more practical as the text goes on. What is great about this method is the pacing and the steady revealing of topics and good practices presented by the author. Because they gradually accustom the reader to topics like recursion, list operations, and lambda, by the time they show how define is unneccessary in Scheme due to the Y Combinator this rather challenging concept seems somewhat intuitive.

Overall I think this is one of the greatest computer science books I have ever read. Sure it may not formally define things or be the absolute easiest text to read on the Scheme language itself, but this book should not be used as a reference product - it should be used as a tool bye which the reader strengthens their fundamentals in computer science and programmer, whether or not they ever touch Scheme again.
8 people found this helpful
0Comment Report abuse
on February 4, 2004
I am reading this book now, after wanting to get back into LISP programming after a ten year hiatus. My last memory of LISP was when I learned it in high school with an excellent teacher. I wish we had had this book back then! As it stands, I devoured the book in a few sittings -- its amusing, fast paced, rigorous and low-BS structure make it an excellent read.
I'm of the last generation of students who were able to switch on a computer and get a BASIC prompt. The huge heft of "introductory" programming books today leaves me cold and uninspired -- I would hate to have seen these when I was first exploring the excitement of programming.
The Little Schemer, by some of the old gurus of the (I believe) MIT Artificial Intelligence Lab (if not that particular lab, then at least those early, heady days in the '70s when AI wasn't a joke), reminded me of what it used to be like -- slowly building up a repertoire of commands and associated concepts that made programming seem a lot more like playing a Bach fugue and a lot less like debugging window objects. Things like recursion -- the essential part of this book -- are inherently wonderful.
Were I teaching an advanced class for high school students, this book would be at the top of my list. Were I wanting to introduce a liberal arts student into the joys of mathematics, this book would be at the top. Were I wanting to deprogram a bad-habited CS student, this book. Indeed, with so many Universities wanting to stuff some kind of logical, syntatical reasoning requirements into their required courses, this book should be a best seller.
It is a book that recaptures the joys and frustrations of programming and goes a long way to explaining why so many of the brightest people of the 20th century, at some point or another, sat down and cons'ed up a list.
71 people found this helpful
0Comment Report abuse
on April 18, 2016
The first 80 pages of this book is spectacular. The instructions are clear. It walks you through the recursion step by step until you grasped all the essentials. But from Chapter 5 on, the book makes frequent to function definitions from earlier chapters. This is especially jarring when you have to look at the appendix to figure out where that function came from before being able to figure out the logical extension the current line is really about. At Chapter 8/9, the difficulty shoots up exponentially as it introduces currying and continuations. The book deliberately makes things more complicated by first showing you a function that makes no sense, then backtrack to an earlier example before showing you the same function again. At the point the book no longer does any step by step walkthrough to guide you over the difficult parts but expect you to make the logical leap (massive at this point) by yourself. Continuation especially should be much better explanations. Another problem in the later part of the book is it introduces functions without ever defining them.
4 people found this helpful
11 comment Report abuse
on February 26, 2017
I absolutely loved the fist half or so of this book: it's one of the best introductions to the type of thought patterns you need to deal effectively with recursion and functional programming I've read (out of maybe three or four, so take that for what you will). But the last few chapters go completely off the rails, tackling topics that require a fair bit of context ... and providing none of it.

It's also a little expensive for what's essentially a glorified worksheet made from what the authors admit were teaching notes for a class you're not taking. Since only about 2/3 of the book is useful, I probably wouldn't buy the book again.
5 people found this helpful
0Comment Report abuse
on February 6, 2007
If you are looking for a language reference, you will be sorely disappointed with this book. It's not designed for quickly looking things up. However, if you are looking to an easy, painless introduction to functional programming, this is the book you want. The exercises are simple, build carefully on one another, and the theory behind them is explained at every step of the book. The presentation is charming, from the peanut butter and jelly theme throughout the examples, to the cavorting elephants on the cover. Pick this book up as a supplement to the mandatory, dry, exhaustive language reference, and work through the examples a few at a time. You'll find yourself understanding the language much better.
2 people found this helpful
0Comment Report abuse
on September 29, 2017
I've read a hundred computer programming books over the years. Some stand out as excellently written. Other stand out as really awful. This book is neither. But it does stand out for its clever approach. I don't particularly care for how it's written, but it is effective. People who like it seem to really like it. I found it typical of Scheme-oriented writing; a little smug and cute.

But I could forgive all that if its font were just a little easier on the eyes. I'm 49, and have finally arrived at that point in life where a book's font makes a difference to me. This book wasn't typeset with middle-aged people in mind. I probably should have found a Kindle edition so I could choose my own font.
2 people found this helpful
11 comment Report abuse
on April 17, 2011
Quite simply, this book is awesome! The authors of this book are masters of pacing. Every problem builds upon the previous one so that by the time your a quarter of the way in your solving fairly complicated problems effortlessly. After a few hours with this book I realized I would never approach a programming problem the same way again. This book is just great, it takes a complex subject and teaches it in a way that anybody could understand.
2 people found this helpful
0Comment Report abuse
on March 2, 2012
The Little Schemer has a unique approach to teaching some of the most important concepts in programming. It isn't a reference, and doesn't teach much about any particular programming language, but it does ease you into thinking about functional programming concepts. If you've only worked with C-like procedural languages, the Little Schemer is a great way to make functional programming seem less alien.
2 people found this helpful
0Comment Report abuse

Sponsored Links

  (What's this?)