I'm looking for an intro to LISP programming
and Touretzky's book,
"Common Lisp, a Gentle Intro to Symbolic Computation"
looks good.
However, it is 16 years old.
Has LISP changed much since 1990?
Is the book out of date?
Thanks.
From: Hrvoje Blazevic
Subject: Re: Is the Touretzky book still good? (Or is it too old?)
Date:
Message-ID: <duibco$fht$1@ss405.t-com.hr>
·······@yahoo.com wrote:
>
> I'm looking for an intro to LISP programming
> and Touretzky's book,
> "Common Lisp, a Gentle Intro to Symbolic Computation"
> looks good.
>
> However, it is 16 years old.
>
> Has LISP changed much since 1990?
> Is the book out of date?
The book is still OK. AFAIK, it does not deal with parts that have/might
have changed.
-- Hrvoje
> I'm looking for an intro to LISP programming and Touretzky's book,
> "Common Lisp, a Gentle Intro to Symbolic Computation"
> looks good.
>
> However, it is 16 years old.
>
> Has LISP changed much since 1990? Is the book out of date?
well, as of March 7, 2006. i am learning from this book. it is
excellent and you can not evev guess that it is 16 year old. you can
guess only if somebody has told you already or you had a look at
photograpgh of Mr. Touretzky at his home page (it reminds you of the
80s).
anyway, 1st of all there are 2 things that need to be clear:
1.) about me
2.) about you
ABOUT ME: i am a newbie to programming. i have my brain tested @ SICP,
HtDP, HtTLaCS (1) and dozen of other books as intoduction to
programming. None was good enough for me. most of them are available
online. check them by going google.
in the setteled for an unknown book i.e. Touretzky's. Very good. but in
the end you need to check your own thinking pattern and see which one
fits onto your brain.
ABOUT YOU: you did not tell whether you are a newbie to LISP or a
newbie to programming?
i will give you an idea, a good one :
check out my posts by using search fascility at comp.lang.lisp. enter
my name and look for the messages posted by me, you will see lots of
people's views on newbie questions (as i posted only questions related
to newbies for i am a newbie)
also search com.lang.lisp archives with keywords like "NEWBIE"
"LEARNING LISP" etc. and you will get lots of good information and if
you read almost all of them, you will get your answer.
hope this helps
-- arnuld
(1) SICP - structure and interpretation of computer programmes
HtDP - How to design programs
HtTLaCS - How to think like a computer scientist.
> I'm looking for an intro to LISP programming and Touretzky's book,
> "Common Lisp, a Gentle Intro to Symbolic Computation"
> looks good.
>
> However, it is 16 years old.
>
well, as of March 7, 2006. i am learning from this book. it is
excellent and you can not even guess that it is 16 year old. you can
guess only if somebody has told you already or you had a look at
photograpgh of Mr. Touretzky at his home page (it reminds you of the
80s). The book feels so modern.
> Has LISP changed much since 1990? Is the book out of date?
> not at all. *outdated*, *forget* this word when you are dealing with Touretzky
anyway, 1st of all there are 2 things that need to be clear:
1.) about me
2.) about you
ABOUT ME: i am a newbie to programming. i have my brain tested @ SICP,
HtDP, HtTLaCS (1) and dozen of other books as intoduction to
programming. None was good enough for me. most of them are available
online. check them by going google.
in the end setteled for an unknown book i.e. Touretzky's. Very good.
but in the end you need to check your own thinking pattern and see
which one fits onto your brain.
ABOUT YOU: you did not tell whether
-- you are a newbie to LISP or a newbie to programming?
yes, i exactly mean there are 2 different paths for 2 different
persons. i can guide on the newbie to programming path which i am
tracing from last 10 months.
If you have experienced programming or programme in other language, i
do not think there is better book than ANSI Common LISP by Paul Graham
and then PAIP by Peter Norvig. also read Practical Common LISP by Peter
Seibel, it fills a very important gap of "scripting". Touretzky's book
is good for people whoa re new to programming and want tot start in CL,
it is too basic for persons who already programme in another language.
i will give you an idea, a good one :
check out my posts by using search fascility at comp.lang.lisp. enter
my name and look for the messages posted by me, you will see lots of
people's views on newbie questions (as i posted only questions related
to newbies for i am a newbie)
also search com.lang.lisp archives with keywords like "NEWBIE"
"LEARNING LISP" etc. and you will get lots of good information and if
you read almost all of them, you will get your answer.
hope this helps
-- arnuld
(1) SICP - structure and interpretation of computer programmes
HtDP - How to design programs
HtTLaCS - How to think like a computer scientist.
·······@yahoo.com wrote:
> I'm looking for an intro to LISP programming
> and Touretzky's book,
> "Common Lisp, a Gentle Intro to Symbolic Computation"
> looks good.
>
> However, it is 16 years old.
>
> Has LISP changed much since 1990?
> Is the book out of date?
>
> Thanks.
No the book is still great , nobody has an easier and funnier style
than David and a reason because I don't know CLOS is because this book
doesn't have a chapter on it .
If you're complete newbie this is a great place to start , even if you
allready programmed in other languages this is a good place.
You'll find few staff re capability of implementations but just ignore
it an enjoy the book.
When you'll over with it try something else like Seibel PCL .
If you're allready good programmer maybe Ansi common lisp with get you
faster to tracks.
bobi
From: Tin Gherdanarra
Subject: Re: Is the Touretzky book still good? (Or is it too old?)
Date:
Message-ID: <475dekFdrqjvU1@individual.net>
·······@yahoo.com wrote:
>
> I'm looking for an intro to LISP programming
> and Touretzky's book,
> "Common Lisp, a Gentle Intro to Symbolic Computation"
> looks good.
>
> However, it is 16 years old.
>
> Has LISP changed much since 1990?
> Is the book out of date?
>
I have heartily endorsed Touretzky's /Gentle Introduction/
as a Lisp primer, and I do it again for you. The book is
a good read and a thorough, sound and easy-to-comprehend
introduction. Be warned, however, that you might find some
parts a little TOO easy to understand. If that happens,
don't give in to the temptation to skip paragraphs, because
you might miss important details that are not so obvious.
Work thru the exercises, put the book under your pillow
and gently move to your white belt in Lisp programming.
Then go and read Peter Seibel's -practical lisp- and
Paul Graham's -OnLisp-.
From: Robert Bruce Carleton
Subject: Re: Is the Touretzky book still good? (Or is it too old?)
Date:
Message-ID: <86r75e2mlz.fsf@papa.hakuhale.net>
Tin Gherdanarra <···········@gmail.com> writes:
> ·······@yahoo.com wrote:
> > I'm looking for an intro to LISP programming
> > and Touretzky's book,
> > "Common Lisp, a Gentle Intro to Symbolic Computation"
> > looks good.
> > However, it is 16 years old.
> > Has LISP changed much since 1990? Is the book out of date?
> >
>
> I have heartily endorsed Touretzky's /Gentle Introduction/
> as a Lisp primer, and I do it again for you. The book is
> a good read and a thorough, sound and easy-to-comprehend
> introduction. Be warned, however, that you might find some
> parts a little TOO easy to understand. If that happens,
> don't give in to the temptation to skip paragraphs, because
> you might miss important details that are not so obvious.
> Work thru the exercises, put the book under your pillow
> and gently move to your white belt in Lisp programming.
> Then go and read Peter Seibel's -practical lisp- and
> Paul Graham's -OnLisp-.
>
>
>
I always thought that COMMON LISP: An Interactive Approach by Stuart
C. Shapiro was another good text. It's available as a PDF file:
http://www.cse.buffalo.edu/pub/WWW/faculty/shapiro/Commonlisp/
Best regards,
--Bruce
--
Robert Bruce Carleton
·······@yahoo.com wrote:
>
> I'm looking for an intro to LISP programming
> and Touretzky's book,
> "Common Lisp, a Gentle Intro to Symbolic Computation"
> looks good.
>
> However, it is 16 years old.
>
> Has LISP changed much since 1990?
> Is the book out of date?
>
> Thanks.
>
Touretzky's book covers a small (?) subset of Common Lisp, a core which
I don't believe has changed much since the book was published in 1990.
The ANSI standard was not published until 1994 (or 1996?), and Paul
Graham highlights changes in CL since 1990 (apparently the publication
of the 2nd edition of Steele's _Common Lisp The Language_ is his
reference point) in Appendix C of his book _ANSI Common Lisp_. However,
these changes are limited to more esoteric areas of the language which
Touretzky does not cover.
The book is an excellent introduction to Common Lisp particularly for
those with little programming experience. He takes his time with
material and provides many useful exercises. He has also written a great
chapter on recursion which would probably be very helpful to those new
to the concept.
On the other hand, if you have experience in other languages the book
may move too slowly for you. A highly recommended alternative in any
case is Peter Seibel's _Practical Common Lisp_, available for free at
http://www.gigamonkeys.com/book/ As you may conclude from the fact that
it was published just last year, it is a very up-to-date book with good
examples of modern style and interesting projects. Touretzky's book
covers a more "traditional" kind of Lisp programming. Seibel's book is a
jazzier (which is not to say it lacks substance) update.
I believe that Touretzky's book is still worth reading, but I want to
point out 2 shortcomings. First, he doesn't cover the Common Lisp Object
System (CLOS - the mechanism for object-oriented programming in CL).
This is fair enough in an introductory book. However, he does make some
use of DEFSTRUCTs, which are an essentially obsolete alternative to
class definitions. In fact, DEFSTRUCT has been retroactively defined in
terms of CLOS. This is really just a sign of the book's age, and you
should be aware of modern usage (which is covered of course in PCL).
The second issue is really more of an error. I suppose it may be an
artifact of older Lisp systems, but Touretzky appears to contradict
himself. A footnote on pg. 308 (section 10.2) states that "...it is
entirely legal to have a lexically scoped (unspecial) global variable.".
This is not true of Common Lisp. The Common Lisp HyperSpec (CLHS), which
is the online version of the ANSI standard, defines a global variable
[1] to be either a dynamic variable or a constant variable. "Dynamic"
here is just a synonym for "special", so a (nonconstant) global variable
is a special variable not lexical.
On pg. 418 (section 14.10) Touretzky then points out that the Lisp
compiler may warn that global variables are "assumed to be SPECIAL".
This is an indication that the variable has been assigned a value before
it has explicitly been created (more on this in a moment). He advises
that "you can get rid of these warnings by declaring the variables with
DEFVAR, [or] DEFPARAMETER...". Of course, DEFVAR and DEFPARAMETER
implicitly declare the variables they create as "special" variables. So
much for global lexicals. Touretzky says that "you can also ignore the
warnings if you choose.". However, if the compiler is telling you that
it's treating a global variable as special, then it doesn't help you to
pretend that it's lexical.
The consequences of this error show up in section 14.16 "Dynamic
Scoping" (more accurately described as indefinite scope and dynamic
extent). Touretzky creates a global special variable via DEFVAR and then
presumes to create a global lexical variable simple by assigning a value
to it:
(defvar birds)
(setf fish '(salmon tuna))
(setf birds '(eagle vulture))
Unfortunately the consequences of assigning a value to a variable
without creating it first are not defined. In Common Lisp variables must
be created via DEFVAR/DEFPARAMETER/LET or as function parameters (LAMBDA
binding). Touretzky goes on to define a few functions that purport to
demonstrate the different behavior of lexical and special variables.
However, the illustration is invalid due to the error above in assuming
that FISH is a global lexical. I believe that the following demonstrates
his intent:
(defvar birds '(eagle vulture))
(defun ref-birds ()
birds)
(let ((fish '(salmon tuna)))
(defun ref-fish ()
fish))
(defun test-dynamic (birds)
(list birds (ref-birds)))
(defun test-lexical (fish)
(list fish (ref-fish)))
Note, however, that BIRDS would conventionally be named *BIRDS* to
highlight the fact that it is a special variable. Also note that while
FISH continues to exist, due to the closure created in REF-FISH, once
the enclosing LET has exited it is still not a global lexical.
This discussion may not make much sense to you as you begin your study
of Lisp but come back to it later once you've read Touretzky's book.
Aloha,
David Sletten
[1]
http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_g.htm#global_variable