summaryrefslogtreecommitdiff
path: root/posts/2013-08-11-the-little-schemer.skr
blob: d4e4211018ca295d09ad4f9c5178a5b553000c09 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
(post
 :title "The Little Schemer"
 :date (make-date* 2013 08 11)
 :tags '("scheme" "books" "wsu")
 :summary "I bought “The Little Schemer”"

 (p [Yesterday, I took a trip to the MIT Press Bookstore and picked up
a copy of
,(anchor [The Little Schemer] "http://mitpress.mit.edu/books/little-schemer").
I’ve only spent a few hours reading and coding along with it, but I’ve
had a lot of fun. The following is a mini-review based on my
experience thus far.])

 (p [“The Little Schemer” teaches you to think recursively using an
interesting and comedic writing style and the Scheme programming
language.  While Scheme is the language of choice, the real goal is to
teach you problem solving rather than the details of a specific
language.  The book starts off simple, explaining what atoms, lists,
and s-expressions are.  Rather than providing the definition and then
showing examples, it first gives examples in the form of a question
and answer.])

 (p [Example:])

 (blockquote
    (p [Is it true that this an atom?])
    (p (strong [atom]))
    (p [Yes, because ,(strong [atom]) is a string of characters
beginning with a letter.]))

 (p [From the examples given, a definition is created. In later
examples, a Scheme procedure is written that produces the correct
answers for all of the questions stated before it.  It’s fun to build
the procedure, verify that it works for all cases, and compare your
implementation with the book’s.])

 (p [“The Little Schemer” defines ten commandments that are essential
to correctly solving the problems in the book.  Some commandments are
first given in an incomplete form, and expanded later when a greater
level of understanding has been achieved.  The problems that you solve
reinforce the commandments.  You might notice that you start writing
procedures without thinking much about it, much like the muscle memory
earned from using Emacs a lot.  Gerald J. Sussman was right when he
said that this book “can perform the same service that Hanon’s finger
exercises or Czerny’s piano studies perform for the student of the
piano.”  I have no idea who Hanon and Czerny are, but I get it. For
the drummers out there, you could liken this book to
,(anchor [Stick Control]
         "http://www.amazon.com/Stick-Control-For-Snare-Drummer/dp/1892764040").])

 (p [The writing style is very informal, comedic, and food themed.
Page 13 has a space reserved for jelly stains, and page 52 tells you
to “go cons a piece of cake onto your mouth.”  I have laughed a number
of times while reading.  Oh, and let’s not forget about the cute
elephant drawings.  This is definitely not your average boring, dry
computer science book.  If you are interested in a unique and
enjoyable learning experience, then I highly recommend reading “The
Little Schemer”.]))