The existing ACAD.MNU was modified and added the
LISP program of DS and ADS.
Can every impure
Lisp program solving such a problem be transformed into a pure
Lisp program with the same input-output behavior, in such a way that the number of primitives executed by the pure program exceeds the number performed by the impure program by at most a constant factor?
Control an RCX from a Common
Lisp program on a desktop computer.
Muller's "Lisp-View: Leverage Through Integration" provides an example of Lisp, using a graphics interface toolkit written in C in order to make the
Lisp program fit in better with non-Lisp applications in the workstation.
The
Lisp program syntax is identical to the syntax used to represent one of its primary data stractures -- the list -- and indeed lists are the internal data structures used to represent source programs.
Lisp program development environments typically use either a structure editor or a text editor.
We solved the problem by writing a short
Lisp program that transforms C header files into a Lisp foreign interface.
For example, the number-crunching power of a vector processor and the availability of a particular numerical analysis routine in Fortran might entice a programmer to attempt interoperation of a
Lisp program running on a workstation and Fortran code running on the vector processor.
There are many other equally interesting developments, such as the discovery of new features for solving difficult image understanding problems [1], the use of genetic programming [4] to discover novel
Lisp programs, the use of evolution strategies to invent new optical filter designs [5], and the use of evolutionary programming for drug design [3].
Clark's measurements of
Lisp programs [Clark 1979] show that about 97% of list cells have a reference count of 1.
The procedural thinking embodied in programming gives concreteness to abstract ideas (e.g., instead of teaching that a function is a mapping from a domain to a range, whatever that means, students learn that a function is a machine that transforms an input, in specified ways, to an output); more personally, I really learned what proof-by-induction was when I wrote recursive
Lisp programs.