Ask Kent M. Pitman About Lisp, Scheme And More
Kent M. Pitman has been programming in Scheme and Lisp, and contributing to the design of those languages, for a long time -- 24 years. He was a technical contributor and an international representative for the ANSI subcommittee that standardized Common Lisp, and in that capacity directed the design of Lisp's error system. Scheme may be better known as a teaching language, but both Scheme and Lisp have applications (as any Emacs user knows) that go far beyond this. Now's your chance to ask him about the pros and cons of those two languages, circa 2001 A.D. Kent also has an interesting, ambivalent take on Free software that's worth noting in an atmosphere where complex issues are often oversimplified and radicalized. Since he's someone who's helped develop standards, this is perhaps a timely issue on which to probe his opinion. It's also a good time to get acquainted with things he's written, which might interest you just as much as his programming. (Soap opera parodies, anyone?) So suggest questions for Kent below (please, one per post) -- we'll pass along the highest-rated ones for him to answer, and Kent will get back soon with his answers.
he's a man who is influential in the programming language called lisp.
The death of one man is a tragedy; the death of a million is a statistic --Joseph Stalin
The reason it in inside is it is then part of the list that is denoted by the parentheses, and can be more easily manipulated by a another scheme procedure reflectively. Reflection is the property that code can examine and change code at its same level of abstraction and run it. I saw an example where you could pass an expression like
(+ 2 (* x (/ x 3))) into a "derivative" method, which would examine that expression, MODIFY it, and return a completely valid new scheme method that was the actual mathematical derivative.
Very cool. The reason it could easily do this recursively is that the operators were bould with the arguments inside the same list.
I can think of at least one other program that does: the Sawfish window manager that's now the default WM for GNOME.
There's no point in questioning authority if you aren't going to listen to the answers.
Many EDA (electronic design CAD) tools use LISP variants. Cadence's SKILL, Avanti uses Scheme. It's 10X faster to write code than procedural languages, and the code is rock-solid (if you know what you're doing) because you can easily test the pieces as you build up your code. I spend 10X less time debugging LISP than procedural languages.
Even if you don't use it, any programmer should at least code enough lisp to understand how elegant programming can be. Become one with the stack. Witness the power of (mapcar It's a completely different kind of mindset than the procedural languages.
Aside from the scholastic value of lisp (or scheme) as a system of abstract logic, there is a thriving commercial industry - it's not huge, but it does include some big names - Yahoo, Orbitz.. the list goes on..