When I first heard of Lisp I was told that because code and data re in the same format, the language is ideal for AI. I have come to the conclusion that this is much less important than migh look at first glance.|
We should distinguish between Common Lisp and Scheme... When one thinks of overall language philosophy, they are very different.
What I was taught under the name Pure Lisp (i.e., car,cdr,cons,atom,null) is now available in other languages too like ML and Haskell.
I think this core is important since list processing is a very elegant, and consistent way to represent most data structures. History note: This idea predates Lisp, and appears in the work of Simon & Newell (sp?)
When it comes to the language proper I think the S-expression idea gives a consiten view of syntax which is nice, from a theoretical point of view (and maybe quire irritating to unintiated programmers).
As to control flow, I think one must really distinguish Scheme and Lisp. Scheme goes for the simple & universal approach, which I find quite appealing.
But I agree that the idea of stratified design is basic the lispishness.
Historical papers: McCarthy, Stoyan. (No one will be harmed by spending some time on John McCarthy's Home Page ).