On Lisp: Advanced Techniques for Common LispStarting in the 1980s, Lisp began to be used in several large systems, including Emacs, Autocad, and Interleaf. On Lisp explains the reasons behind Lisp's growing popularity as a mainstream programming language. On Lisp is a comprehensive study of advanced Lisp techniques, with bottom-up programming as the unifying theme. It gives the first complete description of macros and macro applications. The book also covers important subjects related to bottom-up programming, including functional programming, rapid prototyping, interactive development, and embedded languages. The final chapter takes a deeper look at object-oriented programming than previous Lisp books, showing the step-by-step construction of a working model of the Common Lisp Object System (CLOS). As well as an indispensable reference, On Lisp is a source of software. Its examples form a library of functions and macros that readers will be able to use in their own Lisp programs. |
Common terms and phrases
&body body &optional &rest args a b c anaphoric append backquote binds bottom-up built-in call-with-current-continuation call/cc capture car 1st cdr tree Chapter choose clauses CLOS closures CLTL2 comma Common Lisp compile-time compiler computation cons cont contains data structures database define defmacro defnode defun destructuring dolist element embedded language evaluated example expansion expr expression Figure find-if funcall fn function call functional programming gensym gethash if-match imperative programs implementation incf iteration lambda lexical Lisp function Lisp programs look macro call macro definition macroexpansion mapcar memoize method multiple-value-bind nconc node nondeterminism nondeterministic nondeterministic algorithm null obj name object object-oriented object-oriented programming oddp operator package painter parameter list parse paths progn programming language Prolog query read-macro referential transparency remove-if return value rule runtime Section setf setq setr symbol tail-recursive takes toplevel utilities variables with-answer with-inference write x y z