19
votes

I just cracked open The Little Schemer, and I feel like I'm missing something.

The first question asks "Is it true that this is an atom?", but I do not see any definition of what an atom is. I suppose I can derive what an atom is by the answers to the questions, but then it goes on to ask what is the car of l, and what is the cdr of l, and I have no idea what is being asked.

Is the purpose of the book to discover what the questions mean by reading the answers, or is there some basic knowledge that I need before I tackle this book? If the latter, can someone point me to where I might acquire that basic knowledge?

4
This was put on hold as unclear, but I believe the question was addressed by the answerers, and it is this: What basic knowledge is required before reading The Little Schemer?Michael Blaustein
Yes the book purposely avoids giving formal definitions to let you create a working definition in your head so you can learn to think about the concepts in a way that you intuitively understand. Sometimes you go down the wrong path, but this is normal and expected. It can be argued that you end up with a better understanding that way than if you started with the formal definition, and going back to reference it every time the concept comes up.WorBlux

4 Answers

24
votes

Yes, the format of the little schemer will lead you to discover the concepts through the answers provided. Don't freak out, just keep reading.

10
votes

The Little Schemer teaches you Scheme through a sort of assimilation. Instead of giving you the definition of an atom it shows examples with a question and through it's answer it tells you why something is true or false and in the same time increase your knowledge about whats asked.

The way you learn Scheme though that book is the same way you learn concepts, material or not, as a toddler. It's proven to be a good way to learn natural languages so why not computer languages?

In the beginning of the book it says you need to be able to read English, recognize numbers and be able to count to make use of the book. In comparison, to read and understand a Scheme report (Scheme language definition) you need some knowledge of programming languages, mathematical concepts and how to read formal grammar.

4
votes

I think you will find the concept of "atom", "list" and "S-expression" after you read the fist chapter.

The book isn't the traditional book that teaches you what one concept is and then provides examples. It uses Q&A style to explain the concept of Scheme and functional programming with examples.

In another word, the questions are not for you to answer, it's a way to guide you to thinking.

1
votes

An atom is a basic unit in Scheme such as a number or a character.

car returns the head of the list whereas cdr returns the tail.

>(car '(a b c)) ; car returns the first element in the list...
'a
> (cdr '(a b c))    ; cdr returns the rest.
'(b c)

I would start with a basic tutorial.