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. |
From inside the book
Results 1-3 of 15
Page 72
... tree ) tree ( cons ( our - copy - tree ( car tree ) ) ( if ( cdr tree ) ( our - copy - tree ( cdr tree ) ) ) ) ) ) This definition turns out to be one instance of a common pattern . ( Some of the following functions are written a little ...
... tree ) tree ( cons ( our - copy - tree ( car tree ) ) ( if ( cdr tree ) ( our - copy - tree ( cdr tree ) ) ) ) ) ) This definition turns out to be one instance of a common pattern . ( Some of the following functions are written a little ...
Page 73
... tree ) tree ) ( or ( rfind - if fn ( car tree ) ) ( if ( cdr tree ) ( rfind - if fn ( cdr tree ) ) ) ) ) ) To generalize find - if for trees , we have to decide whether we want to search for just leaves , or for whole subtrees . Our ...
... tree ) tree ) ( or ( rfind - if fn ( car tree ) ) ( if ( cdr tree ) ( rfind - if fn ( cdr tree ) ) ) ) ) ) To generalize find - if for trees , we have to decide whether we want to search for just leaves , or for whole subtrees . Our ...
Page 208
... tree recursers defined in Section 5.6 . In Section 5.6 we defined two tree recursion builders , ttrav , which always ... ( cdr tree ) ( our - copy - tree ( cdr tree ) ) ) ) ) ) as ( ttrav # ' cons ) and a call to 208 MACROS RETURNING ...
... tree recursers defined in Section 5.6 . In Section 5.6 we defined two tree recursion builders , ttrav , which always ... ( cdr tree ) ( our - copy - tree ( cdr tree ) ) ) ) ) ) as ( ttrav # ' cons ) and a call to 208 MACROS RETURNING ...
Common terms and phrases
&body body &optional &rest args anaphoric append backquote binds bottom-up built-in call-with-current-continuation call/cc car 1st car args cdr tree Chapter choose clauses closures CLTL2 comma Common Lisp compile-time compiled cons contains data structures define defmacro defnode defun destructuring dolist efficient element embedded languages evaluated example expansion expr expression Figure find-if find2 funcall fn function calls functional programming gensym gethash if-match imperative programs implementation incf iteration labels lambda lambda-expression lexical Lisp function Lisp programs look macro call macro definition macroexpansion mapcar memoize method multiple-value-bind nconc node nreverse null number of arguments object object-oriented programming oddp on-cdrs operator package parameter list parse paths progn programming language Prolog query read-macro recursive function referential transparency remove-if return value runtime Section setf setq symbol tail-recursive takes toplevel utilities variable capture with-inference written x y z