One way to try to think about "the idea of Lisp" and the larger interesting
issues, is to read "the Advice Taker" paper by John McCarthy (ca. 56-58
"Programs With Common Sense") which is what got him thinking about interactive
intelligent agents, and got him to start thinking about creating a programming
language that such agents could be built in.
The context is that John was/is an excellent mathematician and this is one of
his main perspectives for thinking about things.
So he wanted the agent to be able to reason.
He wanted to be able to reason about the agent.
He wanted to be able to reason about the programming language and its programs.
The agent operates in a world that has places and times and acquisition of new
knowledge/state. So the reasoning has to be in a logical system where change
happens, and this means that valid deductions at one time could be different if
rededuced at some other time. However, he didn't want to violate the logic that
worked earlier, etc.
He wanted a real mathematical apparatus (possibly a new one) that had
desirable properties (including parsimony and compactness).
This led to several grand schemes that were all part of the same set of visions
and insights.
Some of the best papers ever in CS were written by John (sometimes with
collaborators) in the 60s. For example "Situations, Actions and Causal Laws" by
John in 1963, which started off many of these lines of thought.
One of many good ones of these is the McCarthy & Hayes paper about "situation
calculus" and its modal logic. This represents a minority view about how to
view computations, reasoning, change, and race conditions. There were a few
others around then that also had this POV (including -- for some of it -- the
Simula inventors). This is also a summation paper with a very good references
section that covers most of the good stuff being done in this area in the 60s.
Lisp was just one part of larger more important ideas.
Another more trivial but telling point is that John did not like the use of S
expressions for programming -- he invented them to have a way to represent
collections and to serve as an internal form for interpretation. But as any
decent mathematician would, he wanted to have a more readable notation for
programming in and reading programs and learning to think in this more
mathematical style. And he experimented with a number of these over the years.
Cheers,
Alan
_______________________________________________
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc