Lisp, One ( At a Time

Some rants on, about, or entirely unrelated to Lisp.

December 3, 2005

Paul Graham's ANSI Common Lisp

I ordered Paul Graham's book, ANSI Common Lisp last week-end and received it on Wednesday morning. Though I skipped Chapters 11, about CLOS, and 17, about the innards of an OO system, I finished it yesterday evening. (I am over exposed to OO via Java, and simply want to see what else there is in the computing world)

This is probably one of the best Lisp introductory book I have come across so far. His style is concise and to the point, and highly explanatory. For the first time in my life, and I'm not exactly young, I do now understand how ray-tracing works!

Chapter 15, was a mind opener. I typed in the whole code, and stepped through it with LispWorks. I am truly amazed by the power that such a simple data structure can exhibit, though I should have been warned!

Here is an interesting review.

I Cannot Count!

I know how to add, but I do not understand what is meant by addition!

Together with ANSI CL, I ordered Peter Norvig's book, Paradigms of Artificial Intelligence Programming which I just opened, and I stumbled on this, page 19:

(apply #'+ '(1 2 3 4)) => 10

The point is not about Lisp, mapcar or even #'.

The point is: how do I know this is true?

To start with, my eye concentrated on the middle part "2 3" which I summed up in my head and put into some immediate memory cell in my brain with the plan to carry on the process with what was left, ie "1 4"

But how did I know that 2 + 3 is 5? I came with two possible answers:

That computers can perform addition without any understanding whatsoever of what addition means, is, well, what they have been built to perform.

That a human being can do exactly the same: that is the shocking part. It might well be the case no one, ever, has understood what addition is, apart from some vague feeling along the lines of "growing a thing" such that there is a measurable quantity difference between the before and the after.

But understanding addition? I've still got to find an explanation, somewhere, that gets to the crux of it. Addition is impenetrable.

About Me

I'm a computer contractor, born in France, 1961. I'm living in London, UK, though my wife and daughter are still in Paris, France.

I pay my bills by performing Java (Arrgghh) programming for investment banks, but I'm learning Lisp very actively at every moment that looks like spare time.

Providing feed back

I would love to hear from you!