[plt-scheme] Intro to FP book

From: Jos Koot (jos.koot at telefonica.net)
Date: Wed Sep 19 03:48:28 EDT 2007

I read it, may be more than 15 years ago. My humble opion that follows pertains 
to the edition of 1989. May be the book has been adapted in the mean time. 
Whether or not it is a good book depends on your goals. It treats some very 
basic stuff on Lambda Calculus in a very easy to grasp way, but not very 
thorough. It mentions the second Church-Rosser theorem and one of the 
undecidibility theorems very briefly without any hint on why these theorems must 
be true. Reading a few chapters may be useful as a short intro before reading a 
more thorough treatment of Lambda Calculus. In this sense it did make it easier 
for me to read Barendregt. As an introduction to functional PROGRAMMING the book 
fails its goal, I think. 15 years ago the book did not come with tools to 
actually enter the examples in an interpreter. It provides short overviews of 
ML, LISP and Scheme, but only to conclude that after evaluating an example, the 
result wont show a normal form nor much other information. For example in 
((lambda (x) x) (lambda (x) x)) --> #<procedure>, whereas the reader would want 
to see the normal form (lambda (x) x)
A good thing is that the book gives in very simple words some insight in the 
process of evaluation and recursion by 'manually', i.e. with pencil and paper, 
going through some evaluations. The book also provides some insight on how it is 
possible that a 'simple' theory as Lambda Calculus can be used as fundament for 
the study of the properties of 'real' programming languages. It does treat 
normal order (lazy) and applicative order (eager) evaluation and does show how 
recursion is constructed in Lambda Calculus. It also shows how higher 
syntactical layers can be build. If I remember well, it does not show how things 
like continuations and assignments can be described in terms of Lambda Calculus. 
For someone who wants to learn functional programming, better books are 
available I think. May be nowadays the book comes with software for reduction of 
lambda terms such as to produce normal forms. That would be an important 
improvement allowing the reader to do some more experiments than possible with 
paper and pencil only. But on the other hand the absence of this tool may have 
the benefit of forcing the reader to do the most essential evaluations all by 
himself with pen and paper.
Jos Koot

((((lambda(x)((((((x x)x)x)x)x)x))
   (lambda(x)(lambda(y)(x(x y)))))
  (lambda(x)(write x)x))
----- Original Message ----- 
From: "Grant Rettke" <grettke at acm.org>
To: "PLT Scheme Mailing List" <plt-scheme at list.cs.brown.edu>
Sent: Wednesday, September 19, 2007 4:30 AM
Subject: [plt-scheme] Intro to FP book

> Would anyone who has read this please share their comments on it?
> http://www.amazon.com/Introduction-Functional-Programming-Calculus-International/dp/0201178125/ref=sr_1_1/002-4028090-2487233?ie=UTF8&s=books&qid=1190168892&sr=1-1
> I heard it is pretty good.
> _________________________________________________
>  For list-related administrative tasks:
>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme

Posted on the users mailing list.