From: Liam Proven
Sent: Wednesday, October 26, 2011 3:18 PM
On 26 October 2011 13:40, Toby Thain <toby at telegraphics.com.au> wrote:
> Last night I came across (via Quora*) a piece by
Paul Graham that tries to
> put McCarthy's early Lisp work into perspective.
>
http://www.paulgraham.com/rootsoflisp.html
> (The article itself is linked here as a PostScript file.)
> I haven't read it all yet.
Nice article - thanks for that!
I'll second that. Very nice precis.
The more I read about Lisp, the more I want to
understand... but I
suspect I am too old & even in my youth I never got much past BASIC.
The only Lisp I've been able to follow code in is Dylan, and Dylan
seems to be rather moribund... :?(
JMC actually used what he called Lisp 2 in his classes, an algebraic
notation not unlike Dylan, very Algol-like in flavor. Not surprising,
when you think of the relative ages of Lisp and Algol.
There are some very good books on Lisp. There is one introductory book
on the language which is a lot of fun, _Land of Lisp_ by Barski, in which
you learn the language by writing programs like Grand Theft Wumpus (in a
chapter entitled "This Ain't Your Daddy's Wumpus"). It's enough to
get
anyone started in Common Lisp. (I prefer CL's ball-of-mud to Scheme's
diamond, to steal the Lisp-is-a-ball-of-mud-APL-is-a-diamond trope from
Joel Moses.)
I still prefer the first edition of Winston and Horn's _LISP_, which
covers several dialects at once, especially MACLISP and InterLISP, but
it's dated, so go with the 2nd or 3rd instead. Wade Hennessey's _Common
Lisp_ is pretty good, too. These are all from the early days of CL,
before it got as big as Ubuntu or RedHat.
The way I *really* learned Lisp was by looking at toy implementations,
especially one written in Pascal. That was back in the early or mid 1980s,
way before the Web, so I don't remember where it was published. I read the
paper in the Math library @ Stanford (which no longer has a lot of the old
working papers collection on paper, just on fiche where it's a lot harder
to browse). If you like, I can send you the source to my variant, or make
it publicly readable on the Toad-1 at the museum.
If you get access JMC's 1960 paper in ACM, read it. The APPLY function
which Paul Graham skips in his precis is a wonder in itself, and is the
reason that LISP 1.5 and InterLISP are "evalquote" while PDP-1 LISP,
MACLISP, CL & Scheme are "eval": The evaluation loop in the former goes
(print (apply (read) (read)))
vs. (print (eval (read)))
Enough for this evening.
Rich Alderson
Vintage Computing Sr. Server Engineer
Vulcan, Inc.
505 5th Avenue S, Suite 900
Seattle, WA 98104
mailto:RichA at
vulcan.com
mailto:RichA at
LivingComputerMuseum.org
http://www.LivingComputerMuseum.org/