Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!uwm.edu!bionet!arisia!roo!masinter From: masinter@parc.xerox.com (Larry Masinter) Newsgroups: comp.lang.lisp Subject: Re: Dumb Common Lisp question Message-ID: Date: 7 Jul 90 20:46:34 GMT References: <4204@jato.Jpl.Nasa.Gov> <1990Jun29.162248.7846@Neon.Stanford.EDU> <1005@lehi3b15.csee.Lehigh.EDU> <1990Jul4.154304.7343@Neon.Stanford.EDU> Sender: news@parc.xerox.com Distribution: usa Organization: Xerox PARC, Palo Alto, CA Lines: 40 In-reply-to: masinter@parc.xerox.com's message of 7 Jul 90 06:08:37 GMT In article I write: > (defmacro double (x) > (let ((y x)) > (list y y))) > (defun oops (list) > (double list)) and I meant (defmacro double (x) `(let ((y ,x)) (list y y))) (defun oops (list) (double list)) The fact that macros capture lexical functions and that much of Common Lisp potentially involves macro expansion means that any rebinding of predefined symbols is potentially ambiguous, e.g., (flet ((cons (x y) (cons y x))) `(,1 . ,2)) or (FLET ((OPEN (filename &key direction) (format t "Open called....") (OPEN filename :direction direction))) (with-open-file (x "frob" :direction ':output) (format t "was Open called?"))) -- Larry Masinter (masinter@parc.xerox.com) Xerox Palo Alto Research Center (PARC) 3333 Coyote Hill Road; Palo Alto, CA USA 94304 Fax: (415) 494-4333