

A micro manual for Lisp - Not the whole truth (McCarthy, 1978) - jacquesm
http://www.ee.ryerson.ca/~elf/pub/misc/micromanualLISP.pdf

======
nivertech
I used McCarthy definition of LISP in LISP to implement my first LISP
Interpreter in C++. I just written in C++ following functions: car, cdr, cons,
cond. Then I translated line by line eval and apply function into C++. All the
rest functions were implemented in LISP itself.

EDIT: I also implemented simple mark-and-sweep garbage collector - otherwise
you will be running out of memory pretty quick.

~~~
gjm11
This is also how the first ever Lisp implementation was made.

Supposedly, McCarthy had never intended his definitions of EVAL and APPLY --
not in this "micro-manual", but in his original Lisp paper -- to be actually
implemented. Some guy called S R Russell (I imagine him as a graduate student
but have never checked) looked at the paper and thought "wait, we can type
this code in, write a bit of supporting code, and get an actual Lisp
implementation", and so history was made.

~~~
JeanPierre
Yeah, Steve Russell was a graduate student. Also, this is what McCarthy said
during an interview:

 _Steve Russell said, look, why don't I program this eval..., and I said to
him, ho, ho, you're confusing theory with practice, this eval is intended for
reading, not for computing. But he went ahead and did it. That is, he compiled
the eval in my paper into [IBM] 704 machine code, fixing bugs, and then
advertised this as a Lisp interpreter, which it certainly was. So at that
point Lisp had essentially the form that it has today...._

(Source: <http://www.paulgraham.com/icad.html> \- not really surprising)

~~~
gruseom
Norvig has the best line about this: "So the first Lisp interpreter was the
result of a programmer ignoring his boss's advice." (PAIP p. 777)

------
fogus
I've used McCarthy Lisp as a code kata for a few years now. It's small enough
to do in < 1 week (maybe a weekend if you have more time than me), is well
known, and damn fun. I am currently learning Ruby using this kata:
<http://github.com/fogus/lithp>

------
artlogic
It's wonderful that there's a free version of this available. I had to pay the
ACM $10 for my copy - about $5/page.

~~~
jacquesm
It's totally ridiculous that such content is only available behind paywalls.
I'm in 'lisp research' mode again, and I ran in to this, figured others might
want to read it.

~~~
rbanffy
Sometimes, you can also go to a local university, open up your laptop in a
cafeteria (or library), search for any open wireless network, and bypass those
paywalls completely.

I have a wonderful one just across the street from home. With a Pringles can I
could do it from my bedrom ;-)

~~~
jacquesm
I think I can see a business model where you stick a cheaper paywall in front
of theirs, and you proxy requests through your pringles can :)

~~~
rbanffy
If you bring the can, I'll call you partner ;-)

~~~
jacquesm
Deal. Wonder if I can get my greencard on the basis of this business plan?

~~~
rbanffy
Since I live in Brazil and this business plan pretty much prevents me from
moving, I find it unlikely.

Wanna try, pg? We can always access the Pringles from a remote location.

------
bitsai
As a Lisp beginner, I also really enjoyed PG's lengthier walk-through of Lisp-
in-Lisp, which explains each part in more detail:

<http://lib.store.yahoo.net/lib/paulgraham/jmc.ps>

------
nivertech
<http://en.wikipedia.org/wiki/Metacircular_interpreter>

A meta-circular evaluator is a special case of a self-interpreter in which the
existing facilities of the parent interpreter are directly applied to the
source code being interpreted, without any need for additional implementation.
Meta-circular evaluation is most common in the context of homoiconic
languages.

The idea goes back at least to the definition of Lisp 1.5 (1961) by John
McCarthy[1]. He describes the evaluation rules of Lisp as a Lisp program.

------
RiderOfGiraffes
I built a Lisp over a weekend some 20 years ago - 1989 I think - following the
instructions and methods in Henderson's book.

Google for LispKit and you'll find out probably as much as I knew back then. I
read the book during the week, then implemented it all in about 24 hours over
Saturday and Sunday. Run first time.

Never did anything with it, though ...

------
helveticaman
This is the first time I see a file, decide not to download it because I think
it is a pdf, then see it is a [scribd] and then decide to go ahead.

~~~
pavs
PDF is better than scribd.

At least for me, when either using one of the lightweight PDF-viewers or using
Chrome's built-in PDF viewer (absolutely fantastic, very fast and smooth).

