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 ).
|